Updated HTML docs

This commit is contained in:
Griatch 2021-06-23 18:58:26 +02:00
parent 86fb09d6bf
commit 86c930be7a
1221 changed files with 76528 additions and 29095 deletions

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -108,7 +109,24 @@
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.slow_exit.html">evennia.contrib.slow_exit</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.talking_npc.html">evennia.contrib.talking_npc</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.test_traits.html">evennia.contrib.test_traits</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.traits.html">evennia.contrib.traits</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.traits.html">evennia.contrib.traits</a><ul>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.traits.html#adding-traits-to-a-typeclass">Adding Traits to a typeclass</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.traits.html#using-traits">Using traits</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.traits.html#trait-types">Trait types</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.traits.html#static-trait">Static trait</a><ul>
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.traits.html#counter">Counter</a><ul>
<li class="toctree-l6"><a class="reference internal" href="evennia.contrib.traits.html#descs">.descs</a></li>
<li class="toctree-l6"><a class="reference internal" href="evennia.contrib.traits.html#rate">.rate</a></li>
<li class="toctree-l6"><a class="reference internal" href="evennia.contrib.traits.html#percent">.percent()</a></li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.traits.html#gauge">Gauge</a></li>
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.traits.html#trait">Trait</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.traits.html#expanding-with-your-own-traits">Expanding with your own Traits</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.tree_select.html">evennia.contrib.tree_select</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.unixcommand.html">evennia.contrib.unixcommand</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.wilderness.html">evennia.contrib.wilderness</a></li>
@ -118,8 +136,17 @@
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.crafting.html">evennia.contrib.crafting</a><ul>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.crafting.crafting.html">evennia.contrib.crafting.crafting</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.crafting.example_recipes.html">evennia.contrib.crafting.example_recipes</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.crafting.crafting.html">evennia.contrib.crafting.crafting</a><ul>
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#installation">Installation</a></li>
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#crafting-in-game">Crafting in game</a></li>
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#crafting-in-code">Crafting in code</a></li>
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#recipes">Recipes</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.crafting.example_recipes.html">evennia.contrib.crafting.example_recipes</a><ul>
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.crafting.example_recipes.html#sword-crafting-tree">Sword crafting tree</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.crafting.tests.html">evennia.contrib.crafting.tests</a></li>
</ul>
</li>
@ -165,7 +192,10 @@
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorial_examples.bodyfunctions.html">evennia.contrib.tutorial_examples.bodyfunctions</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorial_examples.example_batch_code.html">evennia.contrib.tutorial_examples.example_batch_code</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorial_examples.mirror.html">evennia.contrib.tutorial_examples.mirror</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorial_examples.red_button.html">evennia.contrib.tutorial_examples.red_button</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorial_examples.red_button.html">evennia.contrib.tutorial_examples.red_button</a><ul>
<li class="toctree-l5"><a class="reference internal" href="evennia.contrib.tutorial_examples.red_button.html#technical">Technical</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.tutorial_examples.tests.html">evennia.contrib.tutorial_examples.tests</a></li>
</ul>
</li>
@ -186,10 +216,7 @@
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="evennia.locks.html">evennia.locks</a><ul>
<li class="toctree-l3"><a class="reference internal" href="evennia.locks.lockfuncs.html">evennia.locks.lockfuncs</a><ul>
<li class="toctree-l4"><a class="reference internal" href="evennia.locks.lockfuncs.html#mux-name-affects-effect">MUX Name: Affects: Effect:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="evennia.locks.lockfuncs.html">evennia.locks.lockfuncs</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.locks.lockhandler.html">evennia.locks.lockhandler</a></li>
</ul>
</li>
@ -282,10 +309,19 @@
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="evennia.utils.html">evennia.utils</a><ul>
<li class="toctree-l3"><a class="reference internal" href="evennia.utils.ansi.html">evennia.utils.ansi</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.utils.ansi.html">evennia.utils.ansi</a><ul>
<li class="toctree-l4"><a class="reference internal" href="evennia.utils.ansi.html#markup">Markup</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="evennia.utils.batchprocessors.html">evennia.utils.batchprocessors</a><ul>
<li class="toctree-l4"><a class="reference internal" href="evennia.utils.batchprocessors.html#batch-command-processor-file-syntax">Batch-Command processor file syntax</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.utils.batchprocessors.html#batch-code-processor-file-syntax">Batch-Code processor file syntax</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.utils.batchprocessors.html#batch-command-processor-file-syntax">Batch-command processor file syntax</a><ul>
<li class="toctree-l5"><a class="reference internal" href="evennia.utils.batchprocessors.html#example-of-batch-ev-file">Example of batch.ev file:</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="evennia.utils.batchprocessors.html#batch-code-processor-file-syntax">Batch-code processor file syntax</a><ul>
<li class="toctree-l5"><a class="reference internal" href="evennia.utils.batchprocessors.html#example-batch-py-file">Example batch.py file</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="evennia.utils.containers.html">evennia.utils.containers</a></li>
@ -434,7 +470,6 @@
<li><a href="../../0.9.5/api/evennia-api.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -451,6 +486,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.accounts</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -39,7 +40,7 @@
<section id="module-evennia.accounts.accounts">
<span id="evennia-accounts-accounts"></span><h1>evennia.accounts.accounts<a class="headerlink" href="#module-evennia.accounts.accounts" title="Permalink to this headline"></a></h1>
<p>Typeclass for Account objects</p>
<p>Typeclass for Account objects.</p>
<p>Note that this object is primarily intended to
store OOC information, not game info! This
object represents the actual user (not their
@ -180,6 +181,24 @@ at_account_creation()</p>
<em class="property">property </em><code class="sig-name descname">characters</code><a class="headerlink" href="#evennia.accounts.accounts.DefaultAccount.characters" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultAccount.get_display_name">
<code class="sig-name descname">get_display_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultAccount.get_display_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultAccount.get_display_name" title="Permalink to this definition"></a></dt>
<dd><p>This is used by channels and other OOC communications methods to give a
custom display of this accounts input.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<em>Account</em>) The one that will see this name.</p></li>
<li><p><strong>**kwargs</strong> Unused by default, can be used to pass game-specific data.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The name, possibly modified.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultAccount.disconnect_session_from_account">
<code class="sig-name descname">disconnect_session_from_account</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">session</span></em>, <em class="sig-param"><span class="n">reason</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultAccount.disconnect_session_from_account"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultAccount.disconnect_session_from_account" title="Permalink to this definition"></a></dt>
@ -436,8 +455,9 @@ error (ValidationError, None): Any validation error(s) raised. Multiple</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>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.</p>
<p>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.</p>
</dd></dl>
<dl class="py method">
@ -554,6 +574,81 @@ commands at run-time.</p>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultAccount.at_pre_channel_msg">
<code class="sig-name descname">at_pre_channel_msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="n">channel</span></em>, <em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultAccount.at_pre_channel_msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultAccount.at_pre_channel_msg" title="Permalink to this definition"></a></dt>
<dd><p>Called by the Channel just before passing a message into <strong>channel_msg</strong>.
This allows for tweak messages per-user and also to abort the
receive on the receiver-level.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) The message sent to the channel.</p></li>
<li><p><strong>channel</strong> (<em>Channel</em>) The sending channel.</p></li>
<li><p><strong>senders</strong> (<em>list</em><em>, </em><em>optional</em>) 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.</p></li>
<li><p><strong>**kwargs</strong> These are additional keywords passed into <strong>channel_msg</strong>.
If <strong>no_prefix=True</strong> or <strong>emit=True</strong> are passed, the channel
prefix will not be added (<a href="#id9"><span class="problematic" id="id10">**</span></a>[channelname]: ** by default)</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>str or None</em> </p>
<dl class="simple">
<dt>Allows for customizing the message for this recipient.</dt><dd><p>If returning <strong>None</strong> (or <strong>False</strong>) message-receiving is aborted.
The returning string will be passed into <strong>self.channel_msg</strong>.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This support posing/emotes by starting channel-send with : or ;.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultAccount.channel_msg">
<code class="sig-name descname">channel_msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="n">channel</span></em>, <em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultAccount.channel_msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultAccount.channel_msg" title="Permalink to this definition"></a></dt>
<dd><p>This performs the actions of receiving a message to an un-muted
channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) The message sent to the channel.</p></li>
<li><p><strong>channel</strong> (<em>Channel</em>) The sending channel.</p></li>
<li><p><strong>senders</strong> (<em>list</em><em>, </em><em>optional</em>) 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.</p></li>
<li><p><strong>**kwargs</strong> These are additional keywords originally passed into
<strong>Channel.msg</strong>.</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Before this, <strong>Channel.at_pre_channel_msg</strong> will fire, which offers a way
to customize the message for the receiver on the channel-level.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultAccount.at_post_channel_msg">
<code class="sig-name descname">at_post_channel_msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="n">channel</span></em>, <em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultAccount.at_post_channel_msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultAccount.at_post_channel_msg" title="Permalink to this definition"></a></dt>
<dd><p>Called by <strong>self.channel_msg</strong> after message was received.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) The message sent to the channel.</p></li>
<li><p><strong>channel</strong> (<em>Channel</em>) The sending channel.</p></li>
<li><p><strong>senders</strong> (<em>list</em><em>, </em><em>optional</em>) 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.</p></li>
<li><p><strong>**kwargs</strong> These are additional keywords passed into <strong>channel_msg</strong>.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultAccount.search">
<code class="sig-name descname">search</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">searchdata</span></em>, <em class="sig-param"><span class="n">return_puppet</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">search_object</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">typeclass</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">nofound_string</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">multimatch_string</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">use_nicks</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">quiet</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultAccount.search"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultAccount.search" title="Permalink to this definition"></a></dt>
@ -940,6 +1035,94 @@ overriding the call (unused by default).</p></li>
</dd></dl>
<dl class="py class">
<dt id="evennia.accounts.accounts.DefaultGuest">
<em class="property">class </em><code class="sig-prename descclassname">evennia.accounts.accounts.</code><code class="sig-name descname">DefaultGuest</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultGuest"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultGuest" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.accounts.accounts.DefaultAccount</span></code></a></p>
<p>This class is used for guest logins. Unlike Accounts, Guests and
their characters are deleted after disconnection.</p>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultGuest.create">
<em class="property">classmethod </em><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultGuest.create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultGuest.create" title="Permalink to this definition"></a></dt>
<dd><p>Forwards request to cls.authenticate(); returns a DefaultGuest object
if one is available for use.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultGuest.authenticate">
<em class="property">classmethod </em><code class="sig-name descname">authenticate</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultGuest.authenticate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultGuest.authenticate" title="Permalink to this definition"></a></dt>
<dd><p>Gets or creates a Guest account object.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments</dt>
<dd class="field-odd"><p><strong>ip</strong> (<em>str</em><em>, </em><em>optional</em>) IP address of requestor; used for ban checking,
throttling and logging</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>account (Object)</em> Guest account object, if available
errors (list): List of error messages accrued during this request.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultGuest.at_post_login">
<code class="sig-name descname">at_post_login</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">session</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultGuest.at_post_login"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultGuest.at_post_login" title="Permalink to this definition"></a></dt>
<dd><p>In theory, guests only have one character regardless of which
MULTISESSION_MODE were in. They dont get a choice.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em>, </em><em>optional</em>) Session connecting.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultGuest.at_server_shutdown">
<code class="sig-name descname">at_server_shutdown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultGuest.at_server_shutdown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultGuest.at_server_shutdown" title="Permalink to this definition"></a></dt>
<dd><p>We repeat the functionality of <strong>at_disconnect()</strong> here just to
be on the safe side.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.accounts.accounts.DefaultGuest.at_post_disconnect">
<code class="sig-name descname">at_post_disconnect</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/accounts.html#DefaultGuest.at_post_disconnect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.accounts.accounts.DefaultGuest.at_post_disconnect" title="Permalink to this definition"></a></dt>
<dd><p>Once having disconnected, destroy the guests characters and</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p>
</dd>
</dl>
</dd></dl>
<dl class="py exception">
<dt id="evennia.accounts.accounts.DefaultGuest.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.accounts.accounts.DefaultGuest.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.accounts.DefaultAccount.DoesNotExist" title="evennia.accounts.accounts.DefaultAccount.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.accounts.accounts.DefaultAccount.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.accounts.accounts.DefaultGuest.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.accounts.accounts.DefaultGuest.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.accounts.DefaultAccount.MultipleObjectsReturned" title="evennia.accounts.accounts.DefaultAccount.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.accounts.accounts.DefaultAccount.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.accounts.accounts.DefaultGuest.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.accounts.accounts.DefaultGuest'</em><a class="headerlink" href="#evennia.accounts.accounts.DefaultGuest.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.accounts.accounts.DefaultGuest.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'DefaultGuest'</em><a class="headerlink" href="#evennia.accounts.accounts.DefaultGuest.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -985,7 +1168,6 @@ overriding the call (unused by default).</p></li>
<li><a href="../../0.9.5/api/evennia.accounts.accounts.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -1002,6 +1184,7 @@ overriding the call (unused by default).</p></li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.accounts</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.bots</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -494,7 +495,6 @@ triggered by the bot_data_in Inputfunc.</p>
<li><a href="../../0.9.5/api/evennia.accounts.bots.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -511,6 +511,7 @@ triggered by the bot_data_in Inputfunc.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.bots</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -95,7 +96,6 @@ more Objects depending on settings. An Account has no in-game existence.</p>
<li><a href="../../0.9.5/api/evennia.accounts.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -112,6 +112,7 @@ more Objects depending on settings. An Account has no in-game existence.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.manager</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -91,7 +92,6 @@
<li><a href="../../0.9.5/api/evennia.accounts.manager.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -108,6 +108,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.manager</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.models</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -412,7 +413,6 @@ class built by <strong>**create_forward_many_to_many_manager()**</strong> define
<li><a href="../../0.9.5/api/evennia.accounts.models.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -429,6 +429,7 @@ class built by <strong>**create_forward_many_to_many_manager()**</strong> define
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.models</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.cmdhandler</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -45,15 +46,11 @@ command line. The processing of a command works as follows:</p>
<ol class="arabic">
<li><p>The calling object (caller) is analyzed based on its callertype.</p></li>
<li><p>Cmdsets are gathered from different sources:
- channels: all available channel names are auto-created into a cmdset, to allow</p>
- object cmdsets: all objects at callers location are scanned for non-empty</p>
<blockquote>
<div><p>for giving the channel name and have the following immediately
sent to the channel. The sending is performed by the CMD_CHANNEL
system command.</p>
<div><p>cmdsets. This includes cmdsets on exits.</p>
</div></blockquote>
<ul class="simple">
<li><p>object cmdsets: all objects at callers location are scanned for non-empty
cmdsets. This includes cmdsets on exits.</p></li>
<li><p>caller: the caller is searched for its own currently active cmdset.</p></li>
<li><p>account: lastly the cmdsets defined on caller.account are added.</p></li>
</ul>
@ -67,19 +64,10 @@ input string for possible command matches.</p></li>
cmdset, or fallback to error message. Exit.</p></li>
<li><p>If no match was found -&gt; check for CMD_NOMATCH in current cmdset or
fallback to error message. Exit.</p></li>
<li><p>A single match was found. If this is a channel-command (i.e. the
ommand name is that of a channel), &gt; check for CMD_CHANNEL in
current cmdset or use channelhandler default. Exit.</p></li>
<li><p>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.</p></li>
</ol>
<ol class="arabic simple" start="12">
<li><p>We have a unique cmdobject, primed for use. Call all hooks:</p></li>
</ol>
<blockquote>
<div><p><strong>at_pre_cmd()</strong>, <strong>cmdobj.parse()</strong>, <strong>cmdobj.func()</strong> and finally <strong>at_post_cmd()</strong>.</p>
</div></blockquote>
<ol class="arabic simple" start="13">
<li><p>We have a unique cmdobject, primed for use. Call all hooks:
<strong>at_pre_cmd()</strong>, <strong>cmdobj.parse()</strong>, <strong>cmdobj.func()</strong> and finally <strong>at_post_cmd()</strong>.</p></li>
<li><p>Return deferred that will fire with the return from <strong>cmdobj.func()</strong> (unused by default).</p></li>
</ol>
<dl class="py function">
@ -183,7 +171,6 @@ default Evennia.</p>
<li><a href="../../0.9.5/api/evennia.commands.cmdhandler.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -200,6 +187,7 @@ default Evennia.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.cmdhandler</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.cmdparser</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -96,8 +97,8 @@ in the match, otherwise strip them before matching.</p></li>
</dd></dl>
<dl class="py function">
<dt id="evennia.commands.cmdparser.try_num_prefixes">
<code class="sig-prename descclassname">evennia.commands.cmdparser.</code><code class="sig-name descname">try_num_prefixes</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">raw_string</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/cmdparser.html#try_num_prefixes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.cmdparser.try_num_prefixes" title="Permalink to this definition"></a></dt>
<dt id="evennia.commands.cmdparser.try_num_differentiators">
<code class="sig-prename descclassname">evennia.commands.cmdparser.</code><code class="sig-name descname">try_num_differentiators</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">raw_string</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/cmdparser.html#try_num_differentiators"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.cmdparser.try_num_differentiators" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
@ -206,7 +207,6 @@ the remaining arguments, and the matched cmdobject from the cmdset.</p>
<li><a href="../../0.9.5/api/evennia.commands.cmdparser.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -223,6 +223,7 @@ the remaining arguments, and the matched cmdobject from the cmdset.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.cmdparser</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.cmdset</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -423,7 +424,6 @@ self.add().</p>
<li><a href="../../0.9.5/api/evennia.commands.cmdset.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -440,6 +440,7 @@ self.add().</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.cmdset</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.cmdsethandler</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -176,7 +177,7 @@ to the central <strong>cmdhandler.get_and_merge_cmdsets()</strong>!</p>
<dl class="py method">
<dt id="evennia.commands.cmdsethandler.CmdSetHandler.add">
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdset</span></em>, <em class="sig-param"><span class="n">emit_to_obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">permanent</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">default_cmdset</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/cmdsethandler.html#CmdSetHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.cmdsethandler.CmdSetHandler.add" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdset</span></em>, <em class="sig-param"><span class="n">emit_to_obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">persistent</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">default_cmdset</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/cmdsethandler.html#CmdSetHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.cmdsethandler.CmdSetHandler.add" title="Permalink to this definition"></a></dt>
<dd><p>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)</p>
<dl class="field-list simple">
@ -185,7 +186,7 @@ is set as the default one (it will then end up at the bottom of the stack)</p>
<li><p><strong>cmdset</strong> (<a class="reference internal" href="evennia.commands.cmdset.html#evennia.commands.cmdset.CmdSet" title="evennia.commands.cmdset.CmdSet"><em>CmdSet</em></a><em> or </em><em>str</em>) Can be a cmdset object or the python path
to such an object.</p></li>
<li><p><strong>emit_to_obj</strong> (<em>Object</em><em>, </em><em>optional</em>) An object to receive error messages.</p></li>
<li><p><strong>permanent</strong> (<em>bool</em><em>, </em><em>optional</em>) This cmdset will remain across a server reboot.</p></li>
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) Let cmdset remain across server reload.</p></li>
<li><p><strong>default_cmdset</strong> (<em>Cmdset</em><em>, </em><em>optional</em>) Insert this to replace the
default cmdset position (there is only one such position,
always at the bottom of the stack).</p></li>
@ -206,14 +207,14 @@ its a quirk that has to be documented.</p>
<dl class="py method">
<dt id="evennia.commands.cmdsethandler.CmdSetHandler.add_default">
<code class="sig-name descname">add_default</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdset</span></em>, <em class="sig-param"><span class="n">emit_to_obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">permanent</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/cmdsethandler.html#CmdSetHandler.add_default"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.cmdsethandler.CmdSetHandler.add_default" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">add_default</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdset</span></em>, <em class="sig-param"><span class="n">emit_to_obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">persistent</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/cmdsethandler.html#CmdSetHandler.add_default"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.cmdsethandler.CmdSetHandler.add_default" title="Permalink to this definition"></a></dt>
<dd><p>Shortcut for adding a default cmdset.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>cmdset</strong> (<em>Cmdset</em>) The Cmdset to add.</p></li>
<li><p><strong>emit_to_obj</strong> (<em>Object</em><em>, </em><em>optional</em>) Gets error messages</p></li>
<li><p><strong>permanent</strong> (<em>bool</em><em>, </em><em>optional</em>) The new Cmdset should survive a server reboot.</p></li>
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) The new Cmdset should survive a server reboot.</p></li>
</ul>
</dd>
</dl>
@ -391,7 +392,6 @@ handled automatically by &#64;reload).</p>
<li><a href="../../0.9.5/api/evennia.commands.cmdsethandler.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -408,6 +408,7 @@ handled automatically by &#64;reload).</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.cmdsethandler</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.command</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -41,6 +42,13 @@
<span id="evennia-commands-command"></span><h1>evennia.commands.command<a class="headerlink" href="#module-evennia.commands.command" title="Permalink to this headline"></a></h1>
<p>The base Command class.</p>
<p>All commands in Evennia inherit from the Command class in this module.</p>
<dl class="py exception">
<dt id="evennia.commands.command.InterruptCommand">
<em class="property">exception </em><code class="sig-prename descclassname">evennia.commands.command.</code><code class="sig-name descname">InterruptCommand</code><a class="reference internal" href="../_modules/evennia/commands/command.html#InterruptCommand"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.command.InterruptCommand" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
<p>Cleanly interrupt a command.</p>
</dd></dl>
<dl class="py class">
<dt id="evennia.commands.command.CommandMeta">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.command.</code><code class="sig-name descname">CommandMeta</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/command.html#CommandMeta"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.command.CommandMeta" title="Permalink to this definition"></a></dt>
@ -58,7 +66,7 @@
<dt id="evennia.commands.command.Command">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.command.</code><code class="sig-name descname">Command</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/command.html#Command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.command.Command" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Base command</p>
<p>(you may see this if a child command had no help text defined)</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>command [args]</p>
</dd>
@ -375,17 +383,6 @@ commands the caller can use.</p>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.command.Command.client_height">
<code class="sig-name descname">client_height</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/command.html#Command.client_height"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.command.Command.client_height" title="Permalink to this definition"></a></dt>
<dd><p>Get the client screenheight for the session using this command.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>client height (int)</em> The height (in characters) of the client window.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.command.Command.styled_table">
<code class="sig-name descname">styled_table</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/command.html#Command.styled_table"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.command.Command.styled_table" title="Permalink to this definition"></a></dt>
@ -438,13 +435,11 @@ detailing the contents of the table.</p>
<code class="sig-name descname">save_for_next</code><em class="property"> = False</em><a class="headerlink" href="#evennia.commands.command.Command.save_for_next" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.command.Command.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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. &quot;look&quot;)\n aliases - (optional) list of aliases (e.g. [&quot;l&quot;, &quot;loo&quot;])\n locks - lock string (default is &quot;cmd:all()&quot;)\n help_category - how to organize this help entry in help system\n (default is &quot;General&quot;)\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 '}</em><a class="headerlink" href="#evennia.commands.command.Command.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py exception">
<dt id="evennia.commands.command.InterruptCommand">
<em class="property">exception </em><code class="sig-prename descclassname">evennia.commands.command.</code><code class="sig-name descname">InterruptCommand</code><a class="reference internal" href="../_modules/evennia/commands/command.html#InterruptCommand"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.command.InterruptCommand" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
<p>Cleanly interrupt a command.</p>
</dd></dl>
</section>
@ -492,7 +487,6 @@ detailing the contents of the table.</p>
<li><a href="../../0.9.5/api/evennia.commands.command.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -509,6 +503,7 @@ detailing the contents of the table.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.command</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.account</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -70,7 +71,7 @@ method. Otherwise all text will be returned to all connected sessions.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdOOCLook.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.commands.default.account.CmdOOCLook.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.commands.default.account.CmdOOCLook.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -99,6 +100,11 @@ method. Otherwise all text will be returned to all connected sessions.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.account.CmdOOCLook.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdOOCLook.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdOOCLook.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -153,6 +159,11 @@ as you the account have access right to puppet it.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.account.CmdIC.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdIC.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'puppet', 'category': 'general', 'key': 'ic', 'tags': '', 'text': '\n control an object you have permission to puppet\n\n Usage:\n ic &lt;character&gt;\n\n Go in-character (IC) as a given Character.\n\n This will attempt to &quot;become&quot; 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 &lt;character&gt; can be any in-game object as long\n as you the account have access right to puppet it.\n '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdIC.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -202,6 +213,11 @@ as you the account have access right to puppet it.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:pperm(Player)'</em><a class="headerlink" href="#evennia.commands.default.account.CmdOOC.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdOOC.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdOOC.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -250,6 +266,11 @@ as you the account have access right to puppet it.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:pperm(Player)'</em><a class="headerlink" href="#evennia.commands.default.account.CmdPassword.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdPassword.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'password', 'tags': '', 'text': '\n change your password\n\n Usage:\n password &lt;old password&gt; = &lt;new password&gt;\n\n Changes your password. Make sure to pick a safe one.\n '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdPassword.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -306,6 +327,11 @@ game. Use the /all switch to disconnect from all sessions.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.account.CmdQuit.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdQuit.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdQuit.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -357,6 +383,11 @@ if you want.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:pperm(Player)'</em><a class="headerlink" href="#evennia.commands.default.account.CmdCharCreate.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdCharCreate.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'charcreate', 'tags': '', 'text': '\n create a new character\n\n Usage:\n charcreate &lt;charname&gt; [= 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 '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdCharCreate.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -415,6 +446,11 @@ later connecting with a client with different capabilities.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.account.CmdOption.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdOption.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdOption.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -463,6 +499,11 @@ later connecting with a client with different capabilities.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.account.CmdSessions.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdSessions.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdSessions.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -513,6 +554,11 @@ also for those with all permissions.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.account.CmdWho.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdWho.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdWho.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -521,7 +567,7 @@ also for those with all permissions.</p>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.muxcommand.MuxCommand</span></code></a></p>
<p>testing which colors your client support</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>color ansi||xterm256</p>
<dt>Usage:</dt><dd><p>color ansi | xterm256</p>
</dd>
</dl>
<p>Prints a color map along with in-mud color codes to use to produce
@ -592,6 +638,11 @@ Takes a table of columns [[val,val,…],[val,val,…],…]</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.account.CmdColorTest.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdColorTest.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdColorTest.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -647,6 +698,11 @@ Use the unquell command to revert back to normal operation.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:pperm(Player)'</em><a class="headerlink" href="#evennia.commands.default.account.CmdQuell.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdQuell.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'unquell', 'category': 'general', 'key': 'quell', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.account.CmdQuell.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -690,6 +746,11 @@ Use the unquell command to revert back to normal operation.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:pperm(Player)'</em><a class="headerlink" href="#evennia.commands.default.account.CmdCharDelete.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdCharDelete.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'chardelete', 'tags': '', 'text': '\n delete a character - this cannot be undone!\n\n Usage:\n chardelete &lt;charname&gt;\n\n Permanently deletes one of your characters.\n '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdCharDelete.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -747,6 +808,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.commands.default.account.CmdStyle.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.account.CmdStyle.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'style', 'tags': '', 'text': '\n In-game style options\n\n Usage:\n style\n style &lt;option&gt; = &lt;value&gt;\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 '}</em><a class="headerlink" href="#evennia.commands.default.account.CmdStyle.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -794,7 +860,6 @@ to all the variables defined therein.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.account.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -811,6 +876,7 @@ to all the variables defined therein.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.account</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.admin</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -90,6 +91,11 @@ supplied it will be echoed to the user unless /quiet is set.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(boot) or perm(Admin)'</em><a class="headerlink" href="#evennia.commands.default.admin.CmdBoot.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.admin.CmdBoot.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'admin', 'key': 'boot', 'tags': '', 'text': '\n kick an account from the server.\n\n Usage\n boot[/switches] &lt;account obj&gt; [: 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 '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdBoot.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -164,6 +170,11 @@ values in each tuple is set to the empty string.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(ban) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.admin.CmdBan.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.admin.CmdBan.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'bans', 'category': 'admin', 'key': 'ban', 'tags': '', 'text': &quot;\n ban an account from the server\n\n Usage:\n ban [&lt;name or ip&gt; [: 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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdBan.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -210,6 +221,11 @@ unban.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(unban) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.admin.CmdUnban.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.admin.CmdUnban.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'admin', 'key': 'unban', 'tags': '', 'text': '\n remove a ban from an account\n\n Usage:\n unban &lt;banid&gt;\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 '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdUnban.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -268,6 +284,11 @@ to accounts respectively.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(emit) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.admin.CmdEmit.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'remit pemit', 'category': 'admin', 'key': 'emit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [&lt;obj&gt;, &lt;obj&gt;, ... =] &lt;message&gt;\n remit [&lt;obj&gt;, &lt;obj&gt;, ... =] &lt;message&gt;\n pemit [&lt;obj&gt;, &lt;obj&gt;, ... =] &lt;message&gt;\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 '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -311,6 +332,11 @@ to accounts respectively.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(newpassword) or perm(Admin)'</em><a class="headerlink" href="#evennia.commands.default.admin.CmdNewPassword.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.admin.CmdNewPassword.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'admin', 'key': 'userpassword', 'tags': '', 'text': &quot;\n change the password of an account\n\n Usage:\n userpassword &lt;user obj&gt; = &lt;new password&gt;\n\n Set an account's password.\n &quot;}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdNewPassword.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -364,6 +390,11 @@ or account. If no permission is given, list all permissions on &lt;object&gt;.</
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(perm) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.admin.CmdPerm.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.admin.CmdPerm.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'setperm', 'category': 'admin', 'key': 'perm', 'tags': '', 'text': '\n set the permissions of an account/object\n\n Usage:\n perm[/switch] &lt;object&gt; [= &lt;permission&gt;[,&lt;permission&gt;,...]]\n perm[/switch] *&lt;account&gt; [= &lt;permission&gt;[,&lt;permission&gt;,...]]\n\n Switches:\n del - delete the given permission from &lt;object&gt; or &lt;account&gt;.\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 &lt;object&gt;.\n '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdPerm.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -408,6 +439,11 @@ including all currently unlogged in.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(wall) or perm(Admin)'</em><a class="headerlink" href="#evennia.commands.default.admin.CmdWall.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.admin.CmdWall.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'admin', 'key': 'wall', 'tags': '', 'text': '\n make an announcement to all\n\n Usage:\n wall &lt;message&gt;\n\n Announces a message to all connected sessions\n including all currently unlogged in.\n '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdWall.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -457,6 +493,11 @@ including all currently unlogged in.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(spawn) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.admin.CmdForce.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.admin.CmdForce.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'force', 'tags': '', 'text': '\n forces an object to execute a command\n\n Usage:\n force &lt;object&gt;=&lt;command string&gt;\n\n Example:\n force bob=get stick\n '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdForce.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -504,7 +545,6 @@ including all currently unlogged in.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.admin.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -521,6 +561,7 @@ including all currently unlogged in.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.admin</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.batchprocess</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -104,6 +105,11 @@ skipping, reloading etc.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(batchcommands) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCommands.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.batchprocess.CmdBatchCommands.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'batchcommand batchcmd', 'category': 'building', 'key': 'batchcommands', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] &lt;python.path.to.file&gt;\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 '}</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCommands.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -162,6 +168,11 @@ object copies behind when testing out the script.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:superuser()'</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCode.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.batchprocess.CmdBatchCode.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'batchcodes', 'category': 'building', 'key': 'batchcode', 'tags': '', 'text': '\n build from batch-code file\n\n Usage:\n batchcode[/interactive] &lt;python path to file&gt;\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 '}</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCode.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -209,7 +220,6 @@ object copies behind when testing out the script.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.batchprocess.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -226,6 +236,7 @@ object copies behind when testing out the script.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.batchprocess</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.building</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -86,6 +87,11 @@ the cases, see the module doc.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.commands.default.building.ObjManipCommand.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.ObjManipCommand.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.ObjManipCommand.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -147,6 +153,11 @@ by everyone.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(setobjalias) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdSetObjAlias.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdSetObjAlias.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'setobjalias', 'category': 'building', 'key': 'alias', 'tags': '', 'text': &quot;\n adding permanent aliases for object\n\n Usage:\n alias &lt;obj&gt; [= [alias[,alias,alias,...]]]\n alias &lt;obj&gt; =\n alias/category &lt;obj&gt; = [alias[,alias,...]:&lt;category&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdSetObjAlias.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -192,6 +203,11 @@ one exact copy of the original object will be created with the name <a href="#id
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(copy) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdCopy.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdCopy.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'copy', 'tags': '', 'text': &quot;\n copy an object and its properties\n\n Usage:\n copy &lt;original obj&gt; [= &lt;new_name&gt;][;alias;alias..]\n [:&lt;new_location&gt;] [,&lt;new_name2&gt; ...]\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdCopy.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -284,6 +300,11 @@ required and get the attribute from the object.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(cpattr) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdCpAttr.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdCpAttr.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'cpattr', 'tags': '', 'text': &quot;\n copy attributes between objects\n\n Usage:\n cpattr[/switch] &lt;obj&gt;/&lt;attr&gt; = &lt;obj1&gt;/&lt;attr1&gt; [,&lt;obj2&gt;/&lt;attr2&gt;,&lt;obj3&gt;/&lt;attr3&gt;,...]\n cpattr[/switch] &lt;obj&gt;/&lt;attr&gt; = &lt;obj1&gt; [,&lt;obj2&gt;,&lt;obj3&gt;,...]\n cpattr[/switch] &lt;attr&gt; = &lt;obj1&gt;/&lt;attr1&gt; [,&lt;obj2&gt;/&lt;attr2&gt;,&lt;obj3&gt;/&lt;attr3&gt;,...]\n cpattr[/switch] &lt;attr&gt; = &lt;obj1&gt;[,&lt;obj2&gt;,&lt;obj3&gt;,...]\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 -&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdCpAttr.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -338,6 +359,11 @@ object. If you dont supply a source object, yourself is used.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(mvattr) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdMvAttr.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdMvAttr.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'mvattr', 'tags': '', 'text': &quot;\n move attributes between objects\n\n Usage:\n mvattr[/switch] &lt;obj&gt;/&lt;attr&gt; = &lt;obj1&gt;/&lt;attr1&gt; [,&lt;obj2&gt;/&lt;attr2&gt;,&lt;obj3&gt;/&lt;attr3&gt;,...]\n mvattr[/switch] &lt;obj&gt;/&lt;attr&gt; = &lt;obj1&gt; [,&lt;obj2&gt;,&lt;obj3&gt;,...]\n mvattr[/switch] &lt;attr&gt; = &lt;obj1&gt;/&lt;attr1&gt; [,&lt;obj2&gt;/&lt;attr2&gt;,&lt;obj3&gt;/&lt;attr3&gt;,...]\n mvattr[/switch] &lt;attr&gt; = &lt;obj1&gt;[,&lt;obj2&gt;,&lt;obj3&gt;,...]\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdMvAttr.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -406,6 +432,11 @@ object of this type like this:</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(create) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdCreate.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdCreate.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'create', 'tags': '', 'text': &quot;\n create new objects\n\n Usage:\n create[/drop] &lt;objname&gt;[;alias;alias...][:typeclass], &lt;objname&gt;...\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdCreate.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -462,6 +493,11 @@ describe the current room.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(desc) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdDesc.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdDesc.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'describe', 'category': 'building', 'key': 'desc', 'tags': '', 'text': '\n describe an object or the current room.\n\n Usage:\n desc [&lt;obj&gt; =] &lt;description&gt;\n\n Switches:\n edit - Open up a line editor for more advanced editing.\n\n Sets the &quot;desc&quot; attribute on an object. If an object is not given,\n describe the current room.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdDesc.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -494,7 +530,7 @@ You can specify the /force switch to bypass this confirmation.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdDestroy.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['delete', 'del']</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['del', 'delete']</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -533,6 +569,11 @@ You can specify the /force switch to bypass this confirmation.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(destroy) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdDestroy.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -602,6 +643,11 @@ would be north;no;n.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(dig) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdDig.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdDig.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'dig', 'tags': '', 'text': &quot;\n build new rooms and connect them to the current location\n\n Usage:\n dig[/switches] &lt;roomname&gt;[;alias;alias...][:typeclass]\n [= &lt;exit_to_there&gt;[;alias][:typeclass]]\n [, &lt;exit_to_here&gt;[;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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdDig.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -672,6 +718,11 @@ For more flexibility and power in creating rooms, use dig.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd: perm(tunnel) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdTunnel.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdTunnel.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'tun', 'category': 'building', 'key': 'tunnel', 'tags': '', 'text': '\n create new rooms in cardinal directions only\n\n Usage:\n tunnel[/switch] &lt;direction&gt;[:typeclass] [= &lt;roomname&gt;[;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 &quot;north&quot; as well as\n &quot;n&quot; 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 '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdTunnel.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -727,6 +778,11 @@ currently set destination.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(link) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdLink.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdLink.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'link', 'tags': '', 'text': '\n link existing rooms together with exits\n\n Usage:\n link[/switches] &lt;object&gt; = &lt;target&gt;\n link[/switches] &lt;object&gt; =\n link[/switches] &lt;object&gt;\n\n Switch:\n twoway - connect two exits. For this to work, BOTH &lt;object&gt;\n and &lt;target&gt; must be exit objects.\n\n If &lt;object&gt; is an exit, set its destination to &lt;target&gt;. 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 '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdLink.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -777,6 +833,11 @@ and call func in CmdLink</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(unlink) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdUnLink.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdUnLink.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'unlink', 'tags': '', 'text': '\n remove exit-connections between rooms\n\n Usage:\n unlink &lt;Object&gt;\n\n Unlinks an object, for example an exit, disconnecting\n it from whatever it was connected to.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdUnLink.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -825,6 +886,11 @@ It is also a convenient target of the “home” command.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(sethome) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdSetHome.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdSetHome.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'sethome', 'tags': '', 'text': '\n set an object\'s home location\n\n Usage:\n sethome &lt;obj&gt; [= &lt;home_location&gt;]\n sethom &lt;obj&gt;\n\n The &quot;home&quot; location is a &quot;safety&quot; 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 &quot;home&quot; command.\n\n If no location is given, just view the object\'s home location.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdSetHome.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -869,6 +935,11 @@ to a user. Defaults to yourself.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(listcmdsets) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdListCmdSets.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdListCmdSets.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'listcmsets', 'category': 'building', 'key': 'cmdsets', 'tags': '', 'text': '\n list command sets defined on an object\n\n Usage:\n cmdsets &lt;obj&gt;\n\n This displays all cmdsets assigned\n to a user. Defaults to yourself.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdListCmdSets.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -913,6 +984,11 @@ rename an account.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(rename) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdName.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdName.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'rename', 'category': 'building', 'key': 'name', 'tags': '', 'text': '\n change the name and/or aliases of an object\n\n Usage:\n name &lt;obj&gt; = &lt;newname&gt;;alias1;alias2\n\n Rename an object to something new. Use *obj to\n rename an account.\n\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdName.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -974,6 +1050,11 @@ as well as the self.create_exit() method.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(open) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdOpen.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdOpen.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'open', 'tags': '', 'text': '\n open a new exit from the current room\n\n Usage:\n open &lt;new exit&gt;[;alias;alias..][:typeclass] [,&lt;return exit&gt;[;alias;..][:typeclass]]] = &lt;destination&gt;\n\n Handles the creation of exits. If a destination is given, the exit\n will point there. The &lt;return exit&gt; 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 '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdOpen.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1129,6 +1210,11 @@ with older attrs that might have been named with <strong>[]</strong>s.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(set) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdSetAttribute.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdSetAttribute.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'set', 'tags': '', 'text': '\n set attribute on an object or account\n\n Usage:\n set &lt;obj&gt;/&lt;attr&gt; = &lt;value&gt;\n set &lt;obj&gt;/&lt;attr&gt; =\n set &lt;obj&gt;/&lt;attr&gt;\n set *&lt;account&gt;/&lt;attr&gt; = &lt;value&gt;\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&quot;|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[&lt;key&gt;]|n in &lt;attr&gt; 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 '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdSetAttribute.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1183,7 +1269,7 @@ server settings.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdTypeclass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['type', 'update', 'parent', 'swap']</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['update', 'parent', 'type', 'swap']</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -1212,6 +1298,11 @@ server settings.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(typeclass) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdTypeclass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'update parent type swap', 'category': 'building', 'key': 'typeclass', 'tags': '', 'text': &quot;\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] &lt;object&gt; [= typeclass.path]\n typeclass/prototype &lt;object&gt; = prototype_key\n\n typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object.\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1259,6 +1350,11 @@ matching the given attribute-wildcard search string.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(wipe) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdWipe.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdWipe.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'wipe', 'tags': '', 'text': &quot;\n clear all attributes from an object\n\n Usage:\n wipe &lt;object&gt;[/&lt;attr&gt;[/&lt;attr&gt;...]]\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdWipe.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1326,6 +1422,11 @@ them by ;, i.e:</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd: perm(locks) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdLock.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdLock.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'locks', 'category': 'building', 'key': 'lock', 'tags': '', 'text': &quot;\n assign a lock definition to an object\n\n Usage:\n lock &lt;object or *account&gt;[ = &lt;lockstring&gt;]\n or\n lock[/switch] &lt;object or *account&gt;/&lt;access_type&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdLock.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1447,6 +1548,11 @@ non-persistent data stored on object</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(examine) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdExamine.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdExamine.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ex exam', 'category': 'building', 'key': 'examine', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [&lt;object&gt;[/attrname]]\n examine [*&lt;account&gt;[/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 '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdExamine.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1478,7 +1584,7 @@ one is given.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdFind.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['locate', 'search']</em><a class="headerlink" href="#evennia.commands.default.building.CmdFind.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['search', 'locate']</em><a class="headerlink" href="#evennia.commands.default.building.CmdFind.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -1507,6 +1613,11 @@ one is given.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(find) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdFind.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdFind.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'search locate', 'category': 'building', 'key': 'find', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] &lt;name or dbref or *account&gt; [= 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 '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdFind.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1580,6 +1691,11 @@ teleported to the target location.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(teleport) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdTeleport.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdTeleport.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'teleport', 'category': 'building', 'key': 'tel', 'tags': '', 'text': &quot;\n teleport object to another location\n\n Usage:\n tel/switch [&lt;object&gt; to||=] &lt;target location&gt;\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, &lt;target location&gt; 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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdTeleport.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1588,7 +1704,7 @@ teleported to the target location.</p>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.muxcommand.MuxCommand</span></code></a></p>
<p>attach a script to an object</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>script[/switch] &lt;obj&gt; [= script_path or &lt;scriptkey&gt;]</p>
<dt>Usage:</dt><dd><p>addscript[/switch] &lt;obj&gt; [= script_path or &lt;scriptkey&gt;]</p>
</dd>
<dt>Switches:</dt><dd><p>start - start all non-running scripts on object, or a given script only
stop - stop all scripts on objects, or a given script only</p>
@ -1603,12 +1719,12 @@ object without specifying a script key/path will start/stop ALL scripts on
the object.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdScript.key">
<code class="sig-name descname">key</code><em class="property"> = 'script'</em><a class="headerlink" href="#evennia.commands.default.building.CmdScript.key" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">key</code><em class="property"> = 'addscript'</em><a class="headerlink" href="#evennia.commands.default.building.CmdScript.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdScript.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['addscript']</em><a class="headerlink" href="#evennia.commands.default.building.CmdScript.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['attachscript']</em><a class="headerlink" href="#evennia.commands.default.building.CmdScript.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -1637,6 +1753,11 @@ the object.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(script) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdScript.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdScript.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'attachscript', 'category': 'building', 'key': 'addscript', 'tags': '', 'text': '\n attach a script to an object\n\n Usage:\n addscript[/switch] &lt;obj&gt; [= script_path or &lt;scriptkey&gt;]\n\n Switches:\n start - start all non-running scripts on object, or a given script only\n stop - stop all scripts on objects, or a given script only\n\n If no script path/key is given, lists all scripts active on the given\n object.\n Script path can be given from the base location for scripts as given in\n settings. If adding a new script, it will be started automatically\n (no /start switch is needed). Using the /start or /stop switches on an\n object without specifying a script key/path will start/stop ALL scripts on\n the object.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdScript.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1703,6 +1824,11 @@ enough to for most grouping schemes.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(tag) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdTag.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdTag.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'tags', 'category': 'building', 'key': 'tag', 'tags': '', 'text': '\n handles the tags of an object\n\n Usage:\n tag[/del] &lt;obj&gt; [= &lt;tag&gt;[:&lt;category&gt;]]\n tag/search &lt;tag&gt;[:&lt;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 &lt;obj&gt; 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 '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdTag.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1809,6 +1935,11 @@ displays a list of available prototypes.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(spawn) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.building.CmdSpawn.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdSpawn.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'olc', 'category': 'building', 'key': 'spawn', 'tags': '', 'text': '\n spawn objects from prototype\n\n Usage:\n spawn[/noloc] &lt;prototype_key&gt;\n spawn[/noloc] &lt;prototype_dict&gt;\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 [&lt;prototype_key&gt;]\n spawn/update &lt;prototype_key&gt;\n\n spawn/save &lt;prototype_dict&gt;\n spawn/edit [&lt;prototype_key&gt;]\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 {&quot;key&quot;:&quot;goblin&quot;, &quot;typeclass&quot;:&quot;monster.Monster&quot;, &quot;location&quot;:&quot;#2&quot;}\n spawn/save {&quot;key&quot;: &quot;grunt&quot;, prototype: &quot;goblin&quot;};;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&lt;name&gt; - 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 '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdSpawn.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -1856,7 +1987,6 @@ displays a list of available prototypes.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.building.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -1873,6 +2003,7 @@ displays a list of available prototypes.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.building</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.cmdset_account</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -118,7 +119,6 @@ command method rather than caller.msg().</p>
<li><a href="../../0.9.5/api/evennia.commands.default.cmdset_account.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -135,6 +135,7 @@ command method rather than caller.msg().</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.cmdset_account</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.cmdset_character</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -116,7 +117,6 @@ Account cmdset. Account commands remain available also to Characters.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.cmdset_character.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -133,6 +133,7 @@ Account cmdset. Account commands remain available also to Characters.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.cmdset_character</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.cmdset_session</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -113,7 +114,6 @@
<li><a href="../../0.9.5/api/evennia.commands.default.cmdset_session.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -130,6 +130,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.cmdset_session</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.cmdset_unloggedin</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -115,7 +116,6 @@ of the state instance in this module.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.cmdset_unloggedin.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -132,6 +132,7 @@ of the state instance in this module.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.cmdset_unloggedin</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

File diff suppressed because one or more lines are too long

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.general</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -86,6 +87,11 @@
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(home) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.general.CmdHome.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdHome.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'home', 'tags': '', 'text': &quot;\n move to your character's home location\n\n Usage:\n home\n\n Teleports you to your home location.\n &quot;}</em><a class="headerlink" href="#evennia.commands.default.general.CmdHome.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -107,7 +113,7 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a>&lt;account&g
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdLook.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.commands.default.general.CmdLook.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.commands.default.general.CmdLook.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -136,6 +142,11 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a>&lt;account&g
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdLook.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdLook.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look &lt;obj&gt;\n look *&lt;account&gt;\n\n Observes your location or objects in your vicinity.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdLook.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -195,7 +206,7 @@ for everyone to use, you need build privileges and the alias command.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdNick.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['nickname', 'nicks']</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['nicks', 'nickname']</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -225,6 +236,11 @@ for everyone to use, you need build privileges and the alias command.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdNick.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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] &lt;string&gt; [= [replacement_string]]\n nick[/switches] &lt;template&gt; = &lt;replacement_template&gt;\n nick/delete &lt;string&gt; 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 &quot;nicks&quot; 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 &lt;string&gt;:\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 &lt;string&gt;\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 '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -274,6 +290,11 @@ inv</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdInventory.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdInventory.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdInventory.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -324,6 +345,11 @@ look at you.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdSetDesc.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdSetDesc.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'setdesc', 'tags': '', 'text': '\n describe yourself\n\n Usage:\n setdesc &lt;description&gt;\n\n Add a description to yourself. This\n will be visible to people when they\n look at you.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdSetDesc.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -349,7 +375,7 @@ your inventory.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdGet.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdGet.locks" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all();view:perm(Developer);read:perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.general.CmdGet.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -370,7 +396,12 @@ your inventory.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdGet.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdGet.lock_storage" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();view:perm(Developer);read:perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.general.CmdGet.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdGet.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'grab', 'category': 'general', 'key': 'get', 'tags': '', 'text': '\n pick up something\n\n Usage:\n get &lt;obj&gt;\n\n Picks up an object from your location and puts it in\n your inventory.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdGet.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -422,6 +453,11 @@ location you are currently in.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdDrop.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdDrop.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'drop', 'tags': '', 'text': '\n drop something\n\n Usage:\n drop &lt;obj&gt;\n\n Lets you drop an object from your inventory into the\n location you are currently in.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdDrop.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -476,6 +512,11 @@ placing it in their inventory.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdGive.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdGive.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'give', 'tags': '', 'text': '\n give away something to someone\n\n Usage:\n give &lt;inventory obj&gt; &lt;to||=&gt; &lt;target&gt;\n\n Gives an items from your inventory to another character,\n placing it in their inventory.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdGive.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -519,6 +560,11 @@ placing it in their inventory.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdSay.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '\' &quot;', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say &lt;message&gt;\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -564,6 +610,11 @@ others in the room being informed.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdWhisper.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdWhisper.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'whisper', 'tags': '', 'text': '\n Speak privately as your character to another\n\n Usage:\n whisper &lt;character&gt; = &lt;message&gt;\n whisper &lt;char1&gt;, &lt;char2&gt; = &lt;message&gt;\n\n Talk privately to one or more characters in your current location, without\n others in the room being informed.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdWhisper.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -591,7 +642,7 @@ automatically begin with your name.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdPose.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = [':', 'emote']</em><a class="headerlink" href="#evennia.commands.default.general.CmdPose.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['emote', ':']</em><a class="headerlink" href="#evennia.commands.default.general.CmdPose.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -625,6 +676,11 @@ space.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdPose.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdPose.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'emote :', 'category': 'general', 'key': 'pose', 'tags': '', 'text': &quot;\n strike a pose\n\n Usage:\n pose &lt;pose text&gt;\n pose's &lt;pose text&gt;\n\n Example:\n pose is standing by the wall, smiling.\n -&gt; 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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.general.CmdPose.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -645,7 +701,7 @@ which permission groups you are a member of.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdAccess.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['hierarchy', 'groups']</em><a class="headerlink" href="#evennia.commands.default.general.CmdAccess.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['groups', 'hierarchy']</em><a class="headerlink" href="#evennia.commands.default.general.CmdAccess.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -674,6 +730,11 @@ which permission groups you are a member of.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.general.CmdAccess.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdAccess.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdAccess.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -721,7 +782,6 @@ which permission groups you are a member of.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.general.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -738,6 +798,7 @@ which permission groups you are a member of.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.general</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.help</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -39,24 +40,26 @@
<section id="module-evennia.commands.default.help">
<span id="evennia-commands-default-help"></span><h1>evennia.commands.default.help<a class="headerlink" href="#module-evennia.commands.default.help" title="Permalink to this headline"></a></h1>
<p>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.</p>
<p>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 <strong>**settings.FILE_HELP_ENTRY_MODULES**</strong>.</p>
<dl class="py class">
<dt id="evennia.commands.default.help.CmdHelp">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.help.</code><code class="sig-name descname">CmdHelp</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.muxcommand.MuxCommand</span></code></a></p>
<p>View help or a list of topics</p>
<p>Get help.</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>help &lt;topic or command&gt;
help list
help all</p>
<dt>Usage:</dt><dd><p>help
help &lt;topic, command or category&gt;
help &lt;topic&gt;/&lt;subtopic&gt;
help &lt;topic&gt;/&lt;subtopic&gt;/&lt;subsubtopic&gt;</p>
</dd>
</dl>
<p>This will search for help on commands and other
topics related to the game.</p>
<p>Use the help command alone to see an index of all help topics, organized
by category.eSome big topics may offer additional sub-topics.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdHelp.key">
<code class="sig-name descname">key</code><em class="property"> = 'help'</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.key" title="Permalink to this definition"></a></dt>
@ -87,6 +90,21 @@ topics related to the game.</p>
<code class="sig-name descname">help_more</code><em class="property"> = True</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.help_more" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdHelp.index_type_separator_clr">
<code class="sig-name descname">index_type_separator_clr</code><em class="property"> = '|w'</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.index_type_separator_clr" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdHelp.index_category_clr">
<code class="sig-name descname">index_category_clr</code><em class="property"> = '|W'</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.index_category_clr" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdHelp.index_topic_clr">
<code class="sig-name descname">index_topic_clr</code><em class="property"> = '|G'</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.index_topic_clr" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdHelp.suggestion_cutoff">
<code class="sig-name descname">suggestion_cutoff</code><em class="property"> = 0.6</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.suggestion_cutoff" title="Permalink to this definition"></a></dt>
@ -97,6 +115,16 @@ topics related to the game.</p>
<code class="sig-name descname">suggestion_maxnum</code><em class="property"> = 5</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.suggestion_maxnum" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdHelp.subtopic_separator_char">
<code class="sig-name descname">subtopic_separator_char</code><em class="property"> = '/'</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.subtopic_separator_char" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdHelp.clickable_topics">
<code class="sig-name descname">clickable_topics</code><em class="property"> = True</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.clickable_topics" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdHelp.msg_help">
<code class="sig-name descname">msg_help</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.msg_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.msg_help" title="Permalink to this definition"></a></dt>
@ -107,73 +135,147 @@ help window</p>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdHelp.format_help_entry">
<em class="property">static </em><code class="sig-name descname">format_help_entry</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">title</span></em>, <em class="sig-param"><span class="n">help_text</span></em>, <em class="sig-param"><span class="n">aliases</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">suggested</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.format_help_entry"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.format_help_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">format_help_entry</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">topic</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">help_text</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">aliases</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">suggested</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">subtopics</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">click_topics</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.format_help_entry"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.format_help_entry" title="Permalink to this definition"></a></dt>
<dd><p>This visually formats the help entry.
This method can be overriden to customize the way a help
entry is displayed.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>title</strong> (<em>str</em>) the title of the help entry.</p></li>
<li><p><strong>help_text</strong> (<em>str</em>) the text of the help entry.</p></li>
<li><p><strong>aliases</strong> (<em>list of str</em><em> or </em><em>None</em>) the list of aliases.</p></li>
<li><p><strong>suggested</strong> (<em>list of str</em><em> or </em><em>None</em>) suggested reading.</p></li>
</ul>
</dd>
</dl>
<p>Returns the formatted string, ready to be sent.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdHelp.format_help_list">
<em class="property">static </em><code class="sig-name descname">format_help_list</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">hdict_cmds</span></em>, <em class="sig-param"><span class="n">hdict_db</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.format_help_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.format_help_list" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdHelp.check_show_help">
<code class="sig-name descname">check_show_help</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmd</span></em>, <em class="sig-param"><span class="n">caller</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.check_show_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.check_show_help" title="Permalink to this definition"></a></dt>
<dd><p>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 callers merged cmdset are available.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>cmd</strong> (<a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><em>Command</em></a>) Command class from the merged cmdset</p></li>
<li><p><strong>caller</strong> (<em>Character</em><em>, </em><em>Account</em><em> or </em><a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) The current caller
executing the help command.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdHelp.should_list_cmd">
<code class="sig-name descname">should_list_cmd</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmd</span></em>, <em class="sig-param"><span class="n">caller</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.should_list_cmd"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.should_list_cmd" title="Permalink to this definition"></a></dt>
<dd><p>Should the specified command appear in the help table?</p>
<p>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.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>cmd</strong> the command to be tested.</p></li>
<li><p><strong>caller</strong> the caller of the help system.</p></li>
<li><p><strong>title</strong> (<em>str</em><em>, </em><em>optional</em>) The title of the help entry.</p></li>
<li><p><strong>help_text</strong> (<em>str</em><em>, </em><em>optional</em>) Text of the help entry.</p></li>
<li><p><strong>aliases</strong> (<em>list</em><em>, </em><em>optional</em>) List of help-aliases (displayed in header).</p></li>
<li><p><strong>suggested</strong> (<em>list</em><em>, </em><em>optional</em>) Strings suggested reading (based on title).</p></li>
<li><p><strong>subtopics</strong> (<em>list</em><em>, </em><em>optional</em>) A list of strings - the subcategories available
for this entry.</p></li>
<li><p><strong>click_topics</strong> (<em>bool</em><em>, </em><em>optional</em>) Should help topics be clickable. Default is True.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>True</em> the command should appear in the table.
False: the command shouldnt appear in the table.</p>
<dd class="field-even"><p><em>help_message (str)</em> Help entry formated for console.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdHelp.format_help_index">
<code class="sig-name descname">format_help_index</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmd_help_dict</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">db_help_dict</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">title_lone_category</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">click_topics</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.format_help_index"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.format_help_index" title="Permalink to this definition"></a></dt>
<dd><p>Output a category-ordered g for displaying the main help, grouped by
category.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>cmd_help_dict</strong> (<em>dict</em>) A dict <strong>{“category”: [topic, topic, …]}</strong> for
command-based help.</p></li>
<li><p><strong>db_help_dict</strong> (<em>dict</em>) A dict <strong>{“category”: [topic, topic], …]}</strong> for
database-based help.</p></li>
<li><p><strong>title_lone_category</strong> (<em>bool</em><em>, </em><em>optional</em>) 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.</p></li>
<li><p><strong>click_topics</strong> (<em>bool</em><em>, </em><em>optional</em>) If help-topics are clickable or not
(for webclient or telnet clients with MXP support).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The help index organized into a grid.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>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.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdHelp.can_read_topic">
<code class="sig-name descname">can_read_topic</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmd_or_topic</span></em>, <em class="sig-param"><span class="n">caller</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.can_read_topic"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.can_read_topic" title="Permalink to this definition"></a></dt>
<dd><p>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 <strong>should_list_topic</strong>
is also returning False.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>cmd_or_topic</strong> (<a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><em>Command</em></a><em>, </em><a class="reference internal" href="evennia.help.models.html#evennia.help.models.HelpEntry" title="evennia.help.models.HelpEntry"><em>HelpEntry</em></a><em> or </em><a class="reference internal" href="evennia.help.filehelp.html#evennia.help.filehelp.FileHelpEntry" title="evennia.help.filehelp.FileHelpEntry"><em>FileHelpEntry</em></a>) The topic/command to test.</p></li>
<li><p><strong>caller</strong> the caller checking for access.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If command can be viewed or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This uses the read lock. If no read lock is defined, the topic is assumed readable
by all.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdHelp.can_list_topic">
<code class="sig-name descname">can_list_topic</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmd_or_topic</span></em>, <em class="sig-param"><span class="n">caller</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.can_list_topic"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.can_list_topic" title="Permalink to this definition"></a></dt>
<dd><p>Should the specified command appear in the help table?</p>
<p>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.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>cmd_or_topic</strong> (<a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><em>Command</em></a><em>, </em><a class="reference internal" href="evennia.help.models.html#evennia.help.models.HelpEntry" title="evennia.help.models.HelpEntry"><em>HelpEntry</em></a><em> or </em><a class="reference internal" href="evennia.help.filehelp.html#evennia.help.filehelp.FileHelpEntry" title="evennia.help.filehelp.FileHelpEntry"><em>FileHelpEntry</em></a>) The topic/command to test.</p></li>
<li><p><strong>caller</strong> the caller checking for access.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If command should be listed or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>By default, 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.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdHelp.collect_topics">
<code class="sig-name descname">collect_topics</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">caller</span></em>, <em class="sig-param"><span class="n">mode</span><span class="o">=</span><span class="default_value">'list'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.collect_topics"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.collect_topics" title="Permalink to this definition"></a></dt>
<dd><p>Collect help topics from all sources (cmd/db/file).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>caller</strong> (<em>Object</em><em> or </em><em>Account</em>) The user of the Command.</p></li>
<li><p><strong>mode</strong> (<em>str</em>) 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.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>tuple</em> A tuple of three dicts containing the different types of help entries
in the order cmd-help, db-help, file-help:</p>
<blockquote>
<div><p><strong>({key: cmd,…}, {key: dbentry,…}, {key: fileentry,…}</strong></p>
</div></blockquote>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdHelp.do_search">
<code class="sig-name descname">do_search</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">query</span></em>, <em class="sig-param"><span class="n">entries</span></em>, <em class="sig-param"><span class="n">search_fields</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.do_search"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.do_search" title="Permalink to this definition"></a></dt>
<dd><p>Perform a help-query search, default using Lunr search engine.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>query</strong> (<em>str</em>) The help entry to search for.</p></li>
<li><p><strong>entries</strong> (<em>list</em>) All possibilities. A mix of commands, HelpEntries and FileHelpEntries.</p></li>
<li><p><strong>search_fields</strong> (<em>list</em>) A list of dicts defining how Lunr will find the
search data on the elements. If not given, will use a default.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>tuple</em> A tuple (match, suggestions).</p>
</dd>
</dl>
</dd></dl>
@ -182,6 +284,13 @@ False: the command shouldnt appear in the table.</p>
<dt id="evennia.commands.default.help.CmdHelp.parse">
<code class="sig-name descname">parse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.parse" title="Permalink to this definition"></a></dt>
<dd><p>input is a string containing the command or topic to match.</p>
<p>The allowed syntax is</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">help</span> <span class="o">&lt;</span><span class="n">topic</span><span class="o">&gt;</span><span class="p">[</span><span class="o">/&lt;</span><span class="n">subtopic</span><span class="o">&gt;</span><span class="p">[</span><span class="o">/&lt;</span><span class="n">subtopic</span><span class="o">&gt;</span><span class="p">[</span><span class="o">/...</span><span class="p">]]]</span>
</pre></div>
</div>
<p>The database/command query is always for <strong>&lt;topic&gt;</strong>, and any subtopics
is then parsed from there. If a <strong>&lt;topic&gt;</strong> has spaces in it, it is
always matched before assuming the space begins a subtopic.</p>
</dd></dl>
<dl class="py method">
@ -200,12 +309,17 @@ False: the command shouldnt appear in the table.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': &quot;\n Get help.\n\n Usage:\n help\n help &lt;topic, command or category&gt;\n help &lt;topic&gt;/&lt;subtopic&gt;\n help &lt;topic&gt;/&lt;subtopic&gt;/&lt;subsubtopic&gt; ...\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.commands.default.help.CmdSetHelp">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.help.</code><code class="sig-name descname">CmdSetHelp</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdSetHelp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.muxcommand.MuxCommand</span></code></a></p>
<dd><p>Bases: <a class="reference internal" href="#evennia.commands.default.help.CmdHelp" title="evennia.commands.default.help.CmdHelp"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.help.CmdHelp</span></code></a></p>
<p>Edit the help database.</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>help[/switches] &lt;topic&gt;[[;alias;alias][,category[,locks]] [= &lt;text&gt;]</p>
@ -218,19 +332,53 @@ delete - remove help topic.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<p>sethelp throw = This throws something at
<p>sethelp lore = In the beginning was
sethelp/append pickpocketing,Thievery = This steals …
sethelp/replace pickpocketing, ,attr(is_thief) = This steals …
sethelp/edit thievery</p>
<p>This command manipulates the help database. A help entry can be created,
appended/merged to and deleted. If you dont assign a category, the
“General” category will be used. If no lockstring is specified, default
is to let everyone read the help file.</p>
<p>If not assigning a category, the <strong>settings.DEFAULT_HELP_CATEGORY</strong> 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.</p>
<p>Note that this cannot modify command-help entries - these are modified
in-code, outside the game.</p>
<p>Subtopics helps to break up a long help entry into sub-sections. Users can
access subtopics with <a href="#id1"><span class="problematic" id="id2">|</span></a>whelp topic/subtopic/…|n Subtopics are created and
stored together with the main topic.</p>
<p>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 ## &lt;subtopic-name&gt; on a line, followed by the
help-text of that subtopic.
Use ### &lt;subsub-name&gt; to add a sub-subtopic and so on. Max depth is 5. A
subtopics title is case-insensitive and can consist of multiple words -
the user will be able to enter a partial match to access it.</p>
<p>For example:</p>
<div class="line-block">
<div class="line">Main help text for &lt;topic&gt;</div>
<div class="line"><br /></div>
<div class="line"># SUBTOPICS</div>
<div class="line"><br /></div>
<div class="line">## about</div>
<div class="line"><br /></div>
<div class="line">Text for the &lt;topic&gt;/about subtopic</div>
<div class="line"><br /></div>
<div class="line">### more about-info</div>
<div class="line"><br /></div>
<div class="line">Text for the &lt;topic&gt;/about/more about-info sub-subtopic</div>
<div class="line"><br /></div>
<div class="line">## extra</div>
<div class="line"><br /></div>
<div class="line">Text for the &lt;topic&gt;/extra subtopic</div>
</div>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdSetHelp.key">
<code class="sig-name descname">key</code><em class="property"> = 'sethelp'</em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdSetHelp.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = []</em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdSetHelp.switch_options">
<code class="sig-name descname">switch_options</code><em class="property"> = ('edit', 'replace', 'append', 'extend', 'delete')</em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.switch_options" title="Permalink to this definition"></a></dt>
@ -246,6 +394,17 @@ is to let everyone read the help file.</p>
<code class="sig-name descname">help_category</code><em class="property"> = 'building'</em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdSetHelp.arg_regex">
<code class="sig-name descname">arg_regex</code><em class="property"> = None</em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.arg_regex" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdSetHelp.parse">
<code class="sig-name descname">parse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdSetHelp.parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.parse" title="Permalink to this definition"></a></dt>
<dd><p>We want to use the default parser rather than the CmdHelp.parse</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.help.CmdSetHelp.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdSetHelp.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.func" title="Permalink to this definition"></a></dt>
@ -253,13 +412,13 @@ is to let everyone read the help file.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdSetHelp.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = []</em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.aliases" title="Permalink to this definition"></a></dt>
<dt id="evennia.commands.default.help.CmdSetHelp.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(Helper)'</em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.help.CmdSetHelp.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(Helper)'</em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dt id="evennia.commands.default.help.CmdSetHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'sethelp', 'tags': '', 'text': &quot;\n Edit the help database.\n\n Usage:\n help[/switches] &lt;topic&gt;[[;alias;alias][,category[,locks]] [= &lt;text&gt;]\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 '## &lt;subtopic-name&gt;' on a line, followed by the\n help-text of that subtopic.\n Use '### &lt;subsub-name&gt;' 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 &lt;topic&gt;\n |\n | # SUBTOPICS\n |\n | ## about\n |\n | Text for the '&lt;topic&gt;/about' subtopic'\n |\n | ### more about-info\n |\n | Text for the '&lt;topic&gt;/about/more about-info sub-subtopic\n |\n | ## extra\n |\n | Text for the '&lt;topic&gt;/extra' subtopic\n\n &quot;}</em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -309,7 +468,6 @@ is to let everyone read the help file.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.help.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -326,6 +484,7 @@ is to let everyone read the help file.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.help</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -105,7 +106,6 @@
<li><a href="../../0.9.5/api/evennia.commands.default.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -122,6 +122,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.muxcommand</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -184,6 +185,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.commands.default.muxcommand.MuxCommand.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.muxcommand.MuxCommand.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.muxcommand.MuxCommand.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -224,6 +230,11 @@ character is actually attached to this Account and Session.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.commands.default.muxcommand.MuxAccountCommand.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.muxcommand.MuxAccountCommand.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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. &quot;ooc&quot;).\n\n This class makes sure that caller is always an Account object, while\n creating a new property &quot;character&quot; that is set only if a\n character is actually attached to this Account and Session.\n '}</em><a class="headerlink" href="#evennia.commands.default.muxcommand.MuxAccountCommand.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -271,7 +282,6 @@ character is actually attached to this Account and Session.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.muxcommand.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -288,6 +298,7 @@ character is actually attached to this Account and Session.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.muxcommand</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.syscommands</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -89,6 +90,11 @@ the line is just added to the editor buffer).</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemNoInput.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.syscommands.SystemNoInput.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n This is called when there is no input given\n '}</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemNoInput.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -127,6 +133,11 @@ the line is just added to the editor buffer).</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemNoMatch.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.syscommands.SystemNoMatch.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': '\n No command was found matching the given input.\n '}</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemNoMatch.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -175,118 +186,9 @@ the <strong>raw_cmdname</strong> is the cmdname unmodified by eventual prefix-st
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemMultimatch.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.commands.default.syscommands.SystemSendToChannel">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.syscommands.</code><code class="sig-name descname">SystemSendToChannel</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/syscommands.html#SystemSendToChannel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.syscommands.SystemSendToChannel" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.muxcommand.MuxCommand</span></code></a></p>
<p>This is a special command that the cmdhandler calls
when it detects that the command given matches
an existing Channel object key (or alias).</p>
<dl class="py attribute">
<dt id="evennia.commands.default.syscommands.SystemSendToChannel.key">
<code class="sig-name descname">key</code><em class="property"> = '__send_to_channel_command'</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemSendToChannel.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.syscommands.SystemSendToChannel.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemSendToChannel.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.syscommands.SystemSendToChannel.parse">
<code class="sig-name descname">parse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/syscommands.html#SystemSendToChannel.parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.syscommands.SystemSendToChannel.parse" title="Permalink to this definition"></a></dt>
<dd><p>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)</p>
<p>The following variables are available for our use when entering this
method (from the command definition, and assigned on the fly by the
cmdhandler):</p>
<blockquote>
<div><p>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</p>
<p>self.caller - the object calling this command
self.cmdstring - the actual command name used to call this</p>
<blockquote>
<div><dl class="simple">
<dt>(this allows you to know which alias was used,</dt><dd><p>for example)</p>
</dd>
</dl>
</div></blockquote>
<p>self.args - the raw input; everything following self.cmdstring.
self.cmdset - the cmdset from which this command was picked. Not</p>
<blockquote>
<div><p>often used (useful for commands like help or to
list all available commands etc)</p>
</div></blockquote>
<dl class="simple">
<dt>self.obj - the object on which this command was defined. It is often</dt><dd><p>the same as self.caller.</p>
</dd>
</dl>
</div></blockquote>
<p>A MUX command has the following possible syntax:</p>
<blockquote>
<div><p>name[ with several words][/switch[/switch..]] arg1[,arg2,…] [[=|,] arg[,..]]</p>
</div></blockquote>
<p>The name[ with several words] part is already dealt with by the
cmdhandler at this point, and stored in self.cmdname (we dont use
it here). The rest of the command is stored in self.args, which can
start with the switch indicator /.</p>
<dl class="simple">
<dt>Optional variables to aid in parsing, if set:</dt><dd><dl class="simple">
<dt>self.switch_options - (tuple of valid /switches expected by this</dt><dd><p>command (without the /))</p>
</dd>
<dt>self.rhs_split - Alternate string delimiter or tuple of strings</dt><dd><p>to separate left/right hand sides. tuple form
gives priority split to first string delimiter.</p>
</dd>
</dl>
</dd>
</dl>
<p>This parser breaks self.args into its constituents and stores them in the
following variables:</p>
<blockquote>
<div><p>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 <em>except</em> the switches
self.lhs = Everything to the left of = (lhs:left-hand side). If</p>
<blockquote>
<div><p>no = is found, this is identical to self.args.</p>
</div></blockquote>
<dl class="simple">
<dt>self.rhs: Everything to the right of = (rhs:right-hand side).</dt><dd><p>If no = is found, this is None.</p>
</dd>
</dl>
<p>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)]</p>
<p>All args and list members are stripped of excess whitespace around the
strings, but case is preserved.</p>
</div></blockquote>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.syscommands.SystemSendToChannel.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/syscommands.html#SystemSendToChannel.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.syscommands.SystemSendToChannel.func" title="Permalink to this definition"></a></dt>
<dd><p>Create a new message and send it to channel, using
the already formatted input.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.syscommands.SystemSendToChannel.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = []</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemSendToChannel.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.syscommands.SystemSendToChannel.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemSendToChannel.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.syscommands.SystemSendToChannel.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemSendToChannel.lock_storage" title="Permalink to this definition"></a></dt>
<dt id="evennia.commands.default.syscommands.SystemMultimatch.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': '__multimatch_command', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.syscommands.SystemMultimatch.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -336,7 +238,6 @@ the already formatted input.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.syscommands.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -353,6 +254,7 @@ the already formatted input.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.syscommands</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.system</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -83,6 +84,11 @@ reset to purge) and at_reload() hooks will be called.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(reload) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdReload.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdReload.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.system.CmdReload.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -135,6 +141,11 @@ cmdsets etc will be wiped.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(reload) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdReset.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdReset.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.system.CmdReset.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -178,6 +189,11 @@ cmdsets etc will be wiped.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(shutdown) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdShutdown.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdShutdown.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.system.CmdShutdown.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -265,20 +281,30 @@ should only be accessible by trusted server admins/superusers.|n</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(py) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdPy.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdPy.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '!', 'category': 'system', 'key': 'py', 'tags': '', 'text': &quot;\n execute a snippet of python code\n\n Usage:\n py [cmd]\n py/edit\n py/time &lt;cmd&gt;\n py/clientraw &lt;cmd&gt;\n py/noecho\n\n Switches:\n time - output an approximate execution time for &lt;cmd&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.system.CmdPy.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.commands.default.system.CmdScripts">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.system.</code><code class="sig-name descname">CmdScripts</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/system.html#CmdScripts"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.system.CmdScripts" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.muxcommand.MuxCommand</span></code></a></p>
<p>list and manage all running scripts</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>scripts[/switches] [#dbref, key, script.path or &lt;obj&gt;]</p>
<p>List and manage all running scripts. Allows for creating new global
scripts.</p>
<dl>
<dt>Usage:</dt><dd><p>script[/switches] [#dbref, key, script.path or &lt;obj&gt;]</p>
</dd>
<dt>Switches:</dt><dd><p>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)</p>
<dt>Switches:</dt><dd><dl class="simple">
<dt>create - create a new global script of given typeclass path. This will</dt><dd><p>auto-start the scripts timer if it has one.</p>
</dd>
</dl>
<p>start - start/unpause an existing scripts timer.
stop - stops an existing scripts timer
pause - pause a scripts timer
delete - deletes script. This will also stop the timer as needed</p>
</dd>
</dl>
<p>If no switches are given, this command just views all active
@ -286,7 +312,8 @@ 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.</p>
<p>Use script for managing commands on objects.</p>
<p>Use the <strong>script</strong> build-level command for managing scripts attached to
objects.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdScripts.key">
<code class="sig-name descname">key</code><em class="property"> = 'scripts'</em><a class="headerlink" href="#evennia.commands.default.system.CmdScripts.key" title="Permalink to this definition"></a></dt>
@ -294,12 +321,12 @@ required since whole classes of scripts often have the same name.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdScripts.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['listscripts', 'globalscript']</em><a class="headerlink" href="#evennia.commands.default.system.CmdScripts.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = []</em><a class="headerlink" href="#evennia.commands.default.system.CmdScripts.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdScripts.switch_options">
<code class="sig-name descname">switch_options</code><em class="property"> = ('start', 'stop', 'kill', 'validate')</em><a class="headerlink" href="#evennia.commands.default.system.CmdScripts.switch_options" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">switch_options</code><em class="property"> = ('create', 'start', 'stop', 'pause', 'delete')</em><a class="headerlink" href="#evennia.commands.default.system.CmdScripts.switch_options" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -317,6 +344,11 @@ required since whole classes of scripts often have the same name.</p>
<code class="sig-name descname">excluded_typeclass_paths</code><em class="property"> = ['evennia.prototypes.prototypes.DbPrototype']</em><a class="headerlink" href="#evennia.commands.default.system.CmdScripts.excluded_typeclass_paths" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdScripts.switch_mapping">
<code class="sig-name descname">switch_mapping</code><em class="property"> = {'create': '|gCreated|n', 'delete': '|rDeleted|n', 'pause': '|Paused|n', 'start': '|gStarted|n', 'stop': '|RStopped|n'}</em><a class="headerlink" href="#evennia.commands.default.system.CmdScripts.switch_mapping" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.system.CmdScripts.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/system.html#CmdScripts.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.system.CmdScripts.func" title="Permalink to this definition"></a></dt>
@ -328,6 +360,11 @@ required since whole classes of scripts often have the same name.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(listscripts) or perm(Admin)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdScripts.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdScripts.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'system', 'key': 'scripts', 'tags': '', 'text': &quot;\n List and manage all running scripts. Allows for creating new global\n scripts.\n\n Usage:\n script[/switches] [#dbref, key, script.path or &lt;obj&gt;]\n\n Switches:\n create - create a new global script of given typeclass path. This will\n auto-start the script's timer if it has one.\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 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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.system.CmdScripts.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -349,7 +386,7 @@ given, &lt;nr&gt; defaults to 10.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdObjects.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['listobjects', 'listobjs', 'db', 'stats']</em><a class="headerlink" href="#evennia.commands.default.system.CmdObjects.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['listobjects', 'db', 'stats', 'listobjs']</em><a class="headerlink" href="#evennia.commands.default.system.CmdObjects.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -373,6 +410,11 @@ given, &lt;nr&gt; defaults to 10.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(listobjects) or perm(Builder)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdObjects.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdObjects.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'listobjects db stats listobjs', 'category': 'system', 'key': 'objects', 'tags': '', 'text': '\n statistics on objects in the database\n\n Usage:\n objects [&lt;nr&gt;]\n\n Gives statictics on objects in database as well as\n a list of &lt;nr&gt; latest objects in database. If not\n given, &lt;nr&gt; defaults to 10.\n '}</em><a class="headerlink" href="#evennia.commands.default.system.CmdObjects.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -430,6 +472,11 @@ in the list.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(service) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdService.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdService.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'services', 'category': 'system', 'key': 'service', 'tags': '', 'text': '\n manage system services\n\n Usage:\n service[/switch] &lt;service&gt;\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 '}</em><a class="headerlink" href="#evennia.commands.default.system.CmdService.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -473,6 +520,11 @@ in the list.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.system.CmdAbout.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdAbout.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.system.CmdAbout.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -517,6 +569,11 @@ and the current time stamp.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(time) or perm(Player)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdTime.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdTime.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.system.CmdTime.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -585,6 +642,100 @@ the released memory will instead be re-used by the program.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(list) or perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdServerLoad.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdServerLoad.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'serverprocess serverload', 'category': 'system', 'key': 'server', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.system.CmdServerLoad.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.commands.default.system.CmdTasks">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.system.</code><code class="sig-name descname">CmdTasks</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/system.html#CmdTasks"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.system.CmdTasks" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.muxcommand.MuxCommand</span></code></a></p>
<p>Display or terminate active tasks (delays).</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>tasks[/switch] [task_id or function_name]</p>
</dd>
<dt>Switches:</dt><dd><p>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.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>A task is a single use method of delaying the call of a function. Calls are created
in code, using <strong>evennia.utils.delay</strong>.
See <a href="#id11"><span class="problematic" id="id12">|</span></a>luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.</p>
<p>By default, tasks that are canceled and never called are cleaned up after one minute.</p>
<p class="rubric">Examples</p>
<ul class="simple">
<li><dl class="simple">
<dt><strong>tasks/cancel move_callback</strong> - Cancels all movement delays from the slow_exit contrib.</dt><dd><p>In this example slow exits creates its tasks with
<strong>utils.delay(move_delay, move_callback)</strong></p>
</dd>
</dl>
</li>
<li><p><strong>tasks/cancel 2</strong> - Cancel task id 2.</p></li>
</ul>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdTasks.key">
<code class="sig-name descname">key</code><em class="property"> = 'tasks'</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdTasks.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['task', 'delays']</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdTasks.switch_options">
<code class="sig-name descname">switch_options</code><em class="property"> = ('pause', 'unpause', 'do_task', 'call', 'remove', 'cancel')</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.switch_options" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdTasks.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all();perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdTasks.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'system'</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.system.CmdTasks.coll_date_func">
<em class="property">static </em><code class="sig-name descname">coll_date_func</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/system.html#CmdTasks.coll_date_func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.coll_date_func" title="Permalink to this definition"></a></dt>
<dd><p>Replace regex characters in date string and collect deferred function name.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.system.CmdTasks.do_task_action">
<code class="sig-name descname">do_task_action</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/system.html#CmdTasks.do_task_action"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.do_task_action" title="Permalink to this definition"></a></dt>
<dd><p>Process the action of a tasks command.</p>
<p>This exists to gain support with yes or no function from EvMenu.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.system.CmdTasks.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/system.html#CmdTasks.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.func" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdTasks.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();cmd:perm(Developer)'</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.system.CmdTasks.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'task delays', 'category': 'system', 'key': 'tasks', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.commands.default.system.CmdTasks.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -632,7 +783,6 @@ the released memory will instead be re-used by the program.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.system.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -649,6 +799,7 @@ the released memory will instead be re-used by the program.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.system</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -51,25 +52,107 @@ main test suite started with</p>
<dt id="evennia.commands.default.tests.CommandTest">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.tests.</code><code class="sig-name descname">CommandTest</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#CommandTest"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.CommandTest" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.utils.test_resources.html#evennia.utils.test_resources.EvenniaTest" title="evennia.utils.test_resources.EvenniaTest"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.utils.test_resources.EvenniaTest</span></code></a></p>
<p>Tests a command</p>
<p>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.</p>
<p>Example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">commands.echo</span> <span class="kn">import</span> <span class="n">CmdEcho</span>
<span class="k">class</span> <span class="nc">MyCommandTest</span><span class="p">(</span><span class="n">CommandTest</span><span class="p">):</span>
<span class="k">def</span> <span class="nf">test_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> Test that the echo command really returns</span>
<span class="sd"> what you pass into it.</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">MyCommand</span><span class="p">(),</span> <span class="s2">&quot;hello world!&quot;</span><span class="p">,</span>
<span class="s2">&quot;You hear your echo: &#39;Hello world!&#39;&quot;</span><span class="p">)</span>
</pre></div>
</div>
<dl class="py method">
<dt id="evennia.commands.default.tests.CommandTest.call">
<code class="sig-name descname">call</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdobj</span></em>, <em class="sig-param"><span class="n">args</span></em>, <em class="sig-param"><span class="n">msg</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">cmdset</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">noansi</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">caller</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">receiver</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">cmdstring</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inputs</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">raw_string</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#CommandTest.call"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.CommandTest.call" title="Permalink to this definition"></a></dt>
<dd><p>Test a command by assigning all the needed
properties to cmdobj and running</p>
<blockquote>
<div><p>cmdobj.at_pre_cmd()
cmdobj.parse()
cmdobj.func()
cmdobj.at_post_cmd()</p>
</div></blockquote>
<p>The msgreturn value is compared to eventual
output sent to caller.msg in the game</p>
<code class="sig-name descname">call</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdobj</span></em>, <em class="sig-param"><span class="n">input_args</span></em>, <em class="sig-param"><span class="n">msg</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">cmdset</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">noansi</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">caller</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">receiver</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">cmdstring</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inputs</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">raw_string</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#CommandTest.call"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.CommandTest.call" title="Permalink to this definition"></a></dt>
<dd><p>Test a command by assigning all the needed properties to a cmdobj and
running the sequence. The resulting <strong>.msg</strong> calls will be mocked and
the text= calls to them compared to a expected output.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>msg (str)</em> The received message that was sent to the caller.</p>
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>cmdobj</strong> (<a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><em>Command</em></a>) The command object to use.</p></li>
<li><p><strong>input_args</strong> (<em>str</em>) This should be the full input the Command should
see, such as look here. This will become <strong>.args</strong> for the Command
instance to parse.</p></li>
<li><p><strong>msg</strong> (<em>str</em><em> or </em><em>dict</em><em>, </em><em>optional</em>) This is the expected return value(s)
returned through <strong>caller.msg(text=…)</strong> calls in the command. If a string, the
receiver is controlled with the <strong>receiver</strong> kwarg (defaults to <strong>caller</strong>).
If this is a <strong>dict</strong>, it is a mapping
<strong>{receiver1: “expected1”, receiver2: “expected2”,…}</strong> and <strong>receiver</strong> is
ignored. The message(s) are compared with the actual messages returned
to the receiver(s) as the Command runs. Each check uses <strong>.startswith</strong>,
so you can choose to only include the first part of the
returned message if thats 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 <strong>noansi=False</strong>.
If the command returns texts in multiple separate <strong>.msg</strong>-
calls to a receiver, separate these with <strong>|</strong> if <strong>noansi=True</strong>
(default) and <strong>||</strong> if <strong>noansi=False</strong>. If no <strong>msg</strong> is given (<strong>None</strong>),
then no automatic comparison will be done.</p></li>
<li><p><strong>cmdset</strong> (<em>str</em><em>, </em><em>optional</em>) If given, make <strong>.cmdset</strong> available on the Command
instance as it runs. While <strong>.cmdset</strong> is normally available on the
Command instance by default, this is usually only used by
commands that explicitly operates/displays cmdsets, like
<strong>examine</strong>.</p></li>
<li><p><strong>noansi</strong> (<em>str</em><em>, </em><em>optional</em>) By default the color tags of the <strong>msg</strong> is
ignored, this makes them significant. If unset, <strong>msg</strong> must contain
the same color tags as the actual return message.</p></li>
<li><p><strong>caller</strong> (<em>Object</em><em> or </em><em>Account</em><em>, </em><em>optional</em>) By default <strong>self.char1</strong> is used as the
command-caller (the <strong>.caller</strong> property on the Command). This allows to
execute with another caller, most commonly an Account.</p></li>
<li><p><strong>receiver</strong> (<em>Object</em><em> or </em><em>Account</em><em>, </em><em>optional</em>) This is the object to receive the
return messages we want to test. By default this is the same as <strong>caller</strong>
(which in turn defaults to is <strong>self.char1</strong>). Note that if <strong>msg</strong> is
a <strong>dict</strong>, this is ignored since the receiver is already specified there.</p></li>
<li><p><strong>cmdstring</strong> (<em>str</em><em>, </em><em>optional</em>) Normally this is the Commands <strong>key</strong>.
This allows for tweaking the <strong>.cmdname</strong> 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.</p></li>
<li><p><strong>obj</strong> (<em>str</em><em>, </em><em>optional</em>) This sets the <strong>.obj</strong> property of the Command - the
object on which the Command sits. By default this is the same as <strong>caller</strong>.
This can be used for testing on-object Command interactions.</p></li>
<li><p><strong>inputs</strong> (<em>list</em><em>, </em><em>optional</em>) A list of strings to pass to functions that pause to
take input from the user (normally using <strong>&#64;interactive</strong> and
<strong>ret = yield(question)</strong> or <strong>evmenu.get_input</strong>). Each element of the
list will be passed into the command as if the user wrote that at the prompt.</p></li>
<li><p><strong>raw_string</strong> (<em>str</em><em>, </em><em>optional</em>) Normally the <strong>.raw_string</strong> property is set as
a combination of your <strong>key/cmdname</strong> and <strong>input_args</strong>. This allows
direct control of what this is, for example for testing edge cases
or malformed inputs.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>str or dict</em> </p>
<dl class="simple">
<dt>The message sent to <strong>receiver</strong>, or a dict of</dt><dd><p><strong>{receiver: “msg”, …}</strong> if multiple are given. This is usually
only used with <strong>msg=None</strong> to do the validation externally.</p>
</dd>
</dl>
</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>AssertionError</strong> If the returns of <strong>.msg</strong> calls (tested with <strong>.startswith</strong>) does not
match <strong>expected_input</strong>.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>As part of the tests, all methods of the Command will be called in
the proper order:</p>
<ul class="simple">
<li><p>cmdobj.at_pre_cmd()</p></li>
<li><p>cmdobj.parse()</p></li>
<li><p>cmdobj.func()</p></li>
<li><p>cmdobj.at_post_cmd()</p></li>
</ul>
</dd></dl>
</dd></dl>
@ -139,6 +222,23 @@ output sent to caller.msg in the game</p>
<dt id="evennia.commands.default.tests.TestHelp">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.tests.</code><code class="sig-name descname">TestHelp</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestHelp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestHelp" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.commands.default.tests.CommandTest" title="evennia.commands.default.tests.CommandTest"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.tests.CommandTest</span></code></a></p>
<dl class="py attribute">
<dt id="evennia.commands.default.tests.TestHelp.maxDiff">
<code class="sig-name descname">maxDiff</code><em class="property"> = None</em><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.maxDiff" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestHelp.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Sets up testing environment</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.tearDown">
<code class="sig-name descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestHelp.tearDown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.tearDown" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_help">
<code class="sig-name descname">test_help</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestHelp.test_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_help" title="Permalink to this definition"></a></dt>
@ -149,6 +249,83 @@ output sent to caller.msg in the game</p>
<code class="sig-name descname">test_set_help</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestHelp.test_set_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_set_help" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch">
<code class="sig-name descname">test_subtopic_fetch</code><em class="property"> = None</em><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_00_test">
<code class="sig-name descname">test_subtopic_fetch_00_test</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_00_test" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test, expected=Help for testnnMain help text… test/something else test/more].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_01_test_creating_extra_stuff">
<code class="sig-name descname">test_subtopic_fetch_01_test_creating_extra_stuff</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_01_test_creating_extra_stuff" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/creating extra stuff, expected=Help for test/creating extra st…ating extra stuff/subsubtopicn].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_02_test_creating">
<code class="sig-name descname">test_subtopic_fetch_02_test_creating</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_02_test_creating" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/creating, expected=Help for test/creating extra st…ating extra stuff/subsubtopicn].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_03_test_extra">
<code class="sig-name descname">test_subtopic_fetch_03_test_extra</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_03_test_extra" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/extra, expected=Help for test/creating extra st…ating extra stuff/subsubtopicn].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_04_test_extra_subsubtopic">
<code class="sig-name descname">test_subtopic_fetch_04_test_extra_subsubtopic</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_04_test_extra_subsubtopic" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/extra/subsubtopic, expected=Help for test/creating extra st…bsubtopicnnA subsubtopic text].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_05_test_creating_extra_subsub">
<code class="sig-name descname">test_subtopic_fetch_05_test_creating_extra_subsub</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_05_test_creating_extra_subsub" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/creating extra/subsub, expected=Help for test/creating extra st…bsubtopicnnA subsubtopic text].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_06_test_Something_else">
<code class="sig-name descname">test_subtopic_fetch_06_test_Something_else</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_06_test_Something_else" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/Something else, expected=Help for test/something elsennSomething else].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_07_test_More">
<code class="sig-name descname">test_subtopic_fetch_07_test_More</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_07_test_More" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/More, expected=Help for test/morennAnother t…opics:n test/more/second-more].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_08_test_More_Second_more">
<code class="sig-name descname">test_subtopic_fetch_08_test_More_Second_more</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_08_test_More_Second_more" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/More/Second-more, expected=Help for test/more/second-more...est/more/second-more/third more].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_09_test_More_more">
<code class="sig-name descname">test_subtopic_fetch_09_test_More_more</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_09_test_More_more" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/More/-more, expected=Help for test/more/second-more...est/more/second-more/third more].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_10_test_more_second_more_again">
<code class="sig-name descname">test_subtopic_fetch_10_test_more_second_more_again</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_10_test_more_second_more_again" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/more/second/more again, expected=Help for test/more/second-more/more againnnEven more text.n].</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestHelp.test_subtopic_fetch_11_test_more_second_third">
<code class="sig-name descname">test_subtopic_fetch_11_test_more_second_third</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.tests.TestHelp.test_subtopic_fetch_11_test_more_second_third" title="Permalink to this definition"></a></dt>
<dd><p>Check retrieval of subtopics [with helparg=test/more/second/third, expected=Help for test/more/second-more/third morennThird more textn].</p>
</dd></dl>
</dd></dl>
<dl class="py class">
@ -182,6 +359,106 @@ output sent to caller.msg in the game</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.commands.default.tests.func_test_cmd_tasks">
<code class="sig-prename descclassname">evennia.commands.default.tests.</code><code class="sig-name descname">func_test_cmd_tasks</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#func_test_cmd_tasks"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.func_test_cmd_tasks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py class">
<dt id="evennia.commands.default.tests.TestCmdTasks">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.tests.</code><code class="sig-name descname">TestCmdTasks</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.commands.default.tests.CommandTest" title="evennia.commands.default.tests.CommandTest"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.tests.CommandTest</span></code></a></p>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Sets up testing environment</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.tearDown">
<code class="sig-name descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.tearDown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.tearDown" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_no_tasks">
<code class="sig-name descname">test_no_tasks</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_no_tasks"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_no_tasks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_active_task">
<code class="sig-name descname">test_active_task</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_active_task"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_active_task" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_persistent_task">
<code class="sig-name descname">test_persistent_task</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_persistent_task"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_persistent_task" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_pause_unpause">
<code class="sig-name descname">test_pause_unpause</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_pause_unpause"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_pause_unpause" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_do_task">
<code class="sig-name descname">test_do_task</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_do_task"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_do_task" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_remove">
<code class="sig-name descname">test_remove</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_remove" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_call">
<code class="sig-name descname">test_call</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_call"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_call" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_cancel">
<code class="sig-name descname">test_cancel</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_cancel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_cancel" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_func_name_manipulation">
<code class="sig-name descname">test_func_name_manipulation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_func_name_manipulation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_func_name_manipulation" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_wrong_func_name">
<code class="sig-name descname">test_wrong_func_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_wrong_func_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_wrong_func_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_no_input">
<code class="sig-name descname">test_no_input</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_no_input"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_no_input" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_responce_of_yes">
<code class="sig-name descname">test_responce_of_yes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_responce_of_yes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_responce_of_yes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_task_complete_waiting_input">
<code class="sig-name descname">test_task_complete_waiting_input</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_task_complete_waiting_input"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_task_complete_waiting_input" title="Permalink to this definition"></a></dt>
<dd><p>Test for task completing while waiting for input.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_new_task_waiting_input">
<code class="sig-name descname">test_new_task_waiting_input</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_new_task_waiting_input"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_new_task_waiting_input" title="Permalink to this definition"></a></dt>
<dd><p>Test task completing than a new task with the same ID being made while waitinf for input.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCmdTasks.test_misformed_command">
<code class="sig-name descname">test_misformed_command</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCmdTasks.test_misformed_command"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCmdTasks.test_misformed_command" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.commands.default.tests.TestAdmin">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.tests.</code><code class="sig-name descname">TestAdmin</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestAdmin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestAdmin" title="Permalink to this definition"></a></dt>
@ -447,11 +724,6 @@ output sent to caller.msg in the game</p>
<code class="sig-name descname">test_toggle_com</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestComms.test_toggle_com"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestComms.test_toggle_com" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestComms.test_channels">
<code class="sig-name descname">test_channels</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestComms.test_channels"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestComms.test_channels" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestComms.test_all_com">
<code class="sig-name descname">test_all_com</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestComms.test_all_com"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestComms.test_all_com" title="Permalink to this definition"></a></dt>
@ -467,11 +739,6 @@ output sent to caller.msg in the game</p>
<code class="sig-name descname">test_cdesc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestComms.test_cdesc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestComms.test_cdesc" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestComms.test_cemit">
<code class="sig-name descname">test_cemit</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestComms.test_cemit"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestComms.test_cemit" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestComms.test_cwho">
<code class="sig-name descname">test_cwho</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestComms.test_cwho"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestComms.test_cwho" title="Permalink to this definition"></a></dt>
@ -494,13 +761,124 @@ output sent to caller.msg in the game</p>
</dd></dl>
<dl class="py class">
<dt id="evennia.commands.default.tests.TestCommsChannel">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.tests.</code><code class="sig-name descname">TestCommsChannel</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.commands.default.tests.CommandTest" title="evennia.commands.default.tests.CommandTest"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.tests.CommandTest</span></code></a></p>
<p>Test the central <strong>channel</strong> command.</p>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Sets up testing environment</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.tearDown">
<code class="sig-name descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.tearDown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.tearDown" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__noarg">
<code class="sig-name descname">test_channel__noarg</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__noarg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__noarg" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__msg">
<code class="sig-name descname">test_channel__msg</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__msg" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__list">
<code class="sig-name descname">test_channel__list</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__list" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__all">
<code class="sig-name descname">test_channel__all</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__all" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__history">
<code class="sig-name descname">test_channel__history</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__history"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__history" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__sub">
<code class="sig-name descname">test_channel__sub</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__sub"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__sub" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__unsub">
<code class="sig-name descname">test_channel__unsub</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__unsub"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__unsub" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__alias__unalias">
<code class="sig-name descname">test_channel__alias__unalias</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__alias__unalias"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__alias__unalias" title="Permalink to this definition"></a></dt>
<dd><p>Add and then remove a channel alias</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__mute">
<code class="sig-name descname">test_channel__mute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__mute"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__mute" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__unmute">
<code class="sig-name descname">test_channel__unmute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__unmute"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__unmute" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__create">
<code class="sig-name descname">test_channel__create</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__create" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__destroy">
<code class="sig-name descname">test_channel__destroy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__destroy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__destroy" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__desc">
<code class="sig-name descname">test_channel__desc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__desc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__desc" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__lock">
<code class="sig-name descname">test_channel__lock</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__lock"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__lock" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__unlock">
<code class="sig-name descname">test_channel__unlock</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__unlock"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__unlock" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__boot">
<code class="sig-name descname">test_channel__boot</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__boot"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__boot" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__ban__unban">
<code class="sig-name descname">test_channel__ban__unban</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__ban__unban"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__ban__unban" title="Permalink to this definition"></a></dt>
<dd><p>Test first ban and then unban</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestCommsChannel.test_channel__who">
<code class="sig-name descname">test_channel__who</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestCommsChannel.test_channel__who"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestCommsChannel.test_channel__who" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.commands.default.tests.TestBatchProcess">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.tests.</code><code class="sig-name descname">TestBatchProcess</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestBatchProcess"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestBatchProcess" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.commands.default.tests.CommandTest" title="evennia.commands.default.tests.CommandTest"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.tests.CommandTest</span></code></a></p>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestBatchProcess.test_batch_commands">
<code class="sig-name descname">test_batch_commands</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestBatchProcess.test_batch_commands"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestBatchProcess.test_batch_commands" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">test_batch_commands</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mock_delay</span></em>, <em class="sig-param"><span class="n">mock_repeat</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestBatchProcess.test_batch_commands"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestBatchProcess.test_batch_commands" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -509,7 +887,7 @@ output sent to caller.msg in the game</p>
<dt id="evennia.commands.default.tests.CmdInterrupt">
<em class="property">class </em><code class="sig-prename descclassname">evennia.commands.default.tests.</code><code class="sig-name descname">CmdInterrupt</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#CmdInterrupt"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.CmdInterrupt" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>Base command</p>
<p>(you may see this if a child command had no help text defined)</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>command [args]</p>
</dd>
@ -600,6 +978,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.commands.default.tests.CmdInterrupt.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.tests.CmdInterrupt.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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. &quot;look&quot;)\n aliases - (optional) list of aliases (e.g. [&quot;l&quot;, &quot;loo&quot;])\n locks - lock string (default is &quot;cmd:all()&quot;)\n help_category - how to organize this help entry in help system\n (default is &quot;General&quot;)\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 '}</em><a class="headerlink" href="#evennia.commands.default.tests.CmdInterrupt.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -638,11 +1021,6 @@ set in self.parse())</p>
<code class="sig-name descname">test_multimatch</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestSystemCommands.test_multimatch"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestSystemCommands.test_multimatch" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.commands.default.tests.TestSystemCommands.test_channelcommand">
<code class="sig-name descname">test_channelcommand</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mock_channeldb</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/tests.html#TestSystemCommands.test_channelcommand"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.commands.default.tests.TestSystemCommands.test_channelcommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -690,7 +1068,6 @@ set in self.parse())</p>
<li><a href="../../0.9.5/api/evennia.commands.default.tests.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -707,6 +1084,7 @@ set in self.parse())</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.unloggedin</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -59,7 +60,7 @@ connect “account name” “pass word”</p>
<dl class="py attribute">
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedConnect.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['conn', 'co', 'con']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['con', 'co', 'conn']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -92,6 +93,11 @@ there is no object yet before the account has logged in)</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedConnect.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'con co conn', 'category': 'general', 'key': 'connect', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect &quot;account name&quot; &quot;pass word&quot;\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 '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -113,7 +119,7 @@ create “account name” “pass word”</p>
<dl class="py attribute">
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedCreate.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['cr', 'cre']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedCreate.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['cre', 'cr']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedCreate.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -142,6 +148,11 @@ create “account name” “pass word”</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedCreate.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedCreate.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create &lt;accountname&gt; &lt;password&gt;\n create &quot;account name&quot; &quot;pass word&quot;\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedCreate.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -163,7 +174,7 @@ version is a bit more complicated.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedQuit.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['qu', 'q']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedQuit.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['q', 'qu']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedQuit.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -187,6 +198,11 @@ version is a bit more complicated.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedQuit.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedQuit.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedQuit.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -232,6 +248,11 @@ All it does is display the connect screen.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedLook.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedLook.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedLook.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -252,7 +273,7 @@ for simplicity. It shows a pane of info.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedHelp.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['h', '?']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedHelp.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['?', 'h']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedHelp.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -276,6 +297,11 @@ for simplicity. It shows a pane of info.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -323,7 +349,6 @@ for simplicity. It shows a pane of info.</p>
<li><a href="../../0.9.5/api/evennia.commands.default.unloggedin.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -340,6 +365,7 @@ for simplicity. It shows a pane of info.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.unloggedin</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -121,7 +122,6 @@ Evennia.</p>
<li><a href="../../0.9.5/api/evennia.commands.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -138,6 +138,7 @@ Evennia.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.comms</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -46,11 +47,50 @@
<dd><p>Bases: <a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.ChannelDB" title="evennia.comms.models.ChannelDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.comms.models.ChannelDB</span></code></a></p>
<p>This is the base class for all Channel Comms. Inherit from this to
create different types of communication channels.</p>
<dl class="simple">
<dt>Class-level variables:</dt><dd><ul class="simple">
<li><p><strong>send_to_online_only</strong> (bool, default True) - if set, will only try to
send to subscribers that are actually active. This is a useful optimization.</p></li>
<li><p><strong>log_file</strong> (str, default <strong>“channel_{channelname}.log”</strong>). This is the
log file to which the channel history will be saved. The <strong>{channelname}</strong> 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.</p></li>
<li><p><strong>channel_prefix_string</strong> (str, default <strong>“[{channelname} ]”</strong>) - this is used
as a simple template to get the channel prefix with <strong>.channel_prefix()</strong>.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.objects">
<code class="sig-name descname">objects</code><em class="property"> = &lt;evennia.comms.managers.ChannelManager object&gt;</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.objects" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.send_to_online_only">
<code class="sig-name descname">send_to_online_only</code><em class="property"> = True</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.send_to_online_only" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.log_file">
<code class="sig-name descname">log_file</code><em class="property"> = 'channel_{channelname}.log'</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.log_file" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.channel_prefix_string">
<code class="sig-name descname">channel_prefix_string</code><em class="property"> = '[{channelname}] '</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_prefix_string" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.channel_msg_nick_pattern">
<code class="sig-name descname">channel_msg_nick_pattern</code><em class="property"> = '{alias}\\s*?|{alias}\\s+?(?P&lt;arg1&gt;.+?)'</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_msg_nick_pattern" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.channel_msg_nick_replacement">
<code class="sig-name descname">channel_msg_nick_replacement</code><em class="property"> = 'channel {channelname} = $1'</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_msg_nick_replacement" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.at_first_save">
<code class="sig-name descname">at_first_save</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.at_first_save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_first_save" title="Permalink to this definition"></a></dt>
@ -70,6 +110,34 @@ the hooks called by this method.</p>
<dd><p>Called once, when the channel is first created.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.get_log_filename">
<code class="sig-name descname">get_log_filename</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.get_log_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.get_log_filename" title="Permalink to this definition"></a></dt>
<dd><p>File name to use for channel log.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>str</em> </p>
<dl class="simple">
<dt>The filename to use (this is always assumed to be inside</dt><dd><p>settings.LOG_DIR)</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.set_log_filename">
<code class="sig-name descname">set_log_filename</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.set_log_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.set_log_filename" title="Permalink to this definition"></a></dt>
<dd><p>Set a custom log filename.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>filename</strong> (<em>str</em>) The filename to set. This is a path starting from
inside the settings.LOG_DIR location.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.has_connection">
<code class="sig-name descname">has_connection</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">subscriber</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.has_connection"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.has_connection" title="Permalink to this definition"></a></dt>
@ -100,6 +168,11 @@ to this channel.</p>
<em class="property">property </em><code class="sig-name descname">mutelist</code><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.mutelist" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.banlist">
<em class="property">property </em><code class="sig-name descname">banlist</code><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.banlist" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.wholist">
<em class="property">property </em><code class="sig-name descname">wholist</code><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.wholist" title="Permalink to this definition"></a></dt>
@ -119,14 +192,22 @@ but may use channel commands.</p>
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>bool</em> </p>
<dl class="simple">
<dt>True if muting was successful, False if we were already</dt><dd><p>muted.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.unmute">
<code class="sig-name descname">unmute</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">subscriber</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.unmute"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.unmute" title="Permalink to this definition"></a></dt>
<dd><p>Removes an entity to the list of muted subscribers. A muted subscriber will no longer see channel messages,
but may use channel commands.</p>
<dd><p>Removes an entity from the list of muted subscribers. A muted subscriber
will no longer see channel messages, but may use channel commands.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
@ -135,6 +216,65 @@ but may use channel commands.</p>
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>bool</em> </p>
<dl class="simple">
<dt>True if unmuting was successful, False if we were already</dt><dd><p>unmuted.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.ban">
<code class="sig-name descname">ban</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.ban"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.ban" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>target</strong> (<em>Object</em><em> or </em><em>Account</em>) The entity to unmute. This need not
be a subscriber.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>bool</em> </p>
<dl class="simple">
<dt>True if banning was successful, False if target was already</dt><dd><p>banned.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.unban">
<code class="sig-name descname">unban</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.unban"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.unban" title="Permalink to this definition"></a></dt>
<dd><p>Un-Ban a given user. This will not reconnect them - they will still
have to reconnect and set up aliases anew.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>target</strong> (<em>Object</em><em> or </em><em>Account</em>) The entity to unmute. This need not
be a subscriber.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>bool</em> </p>
<dl class="simple">
<dt>True if unbanning was successful, False if target was not</dt><dd><p>previously banned.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
@ -210,7 +350,7 @@ overriding the call (unused by default).</p></li>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.create">
<em class="property">classmethod </em><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">account</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.create" title="Permalink to this definition"></a></dt>
<em class="property">classmethod </em><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">creator</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.create" title="Permalink to this definition"></a></dt>
<dd><p>Creates a basic Channel with default parameters, unless otherwise
specified or extended.</p>
<p>Provides a friendlier interface to the utils.create_channel() function.</p>
@ -218,7 +358,8 @@ specified or extended.</p>
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em>) This must be unique.</p></li>
<li><p><strong>account</strong> (<em>Account</em>) Account to attribute this object to.</p></li>
<li><p><strong>creator</strong> (<em>Account</em><em> or </em><em>Object</em>) Entity to associate with this channel
(used for tracking)</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
@ -242,172 +383,92 @@ errors (list): A list of errors in string form, if any.</p>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.delete">
<code class="sig-name descname">delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.delete" title="Permalink to this definition"></a></dt>
<dd><p>Deletes channel while also cleaning up channelhandler.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.message_transform">
<code class="sig-name descname">message_transform</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">emit</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">prefix</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">sender_strings</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">external</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.message_transform"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.message_transform" title="Permalink to this definition"></a></dt>
<dd><p>Generates the formatted string sent to listeners on a channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msgobj</strong> (<a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.Msg" title="evennia.comms.models.Msg"><em>Msg</em></a>) Message object to send.</p></li>
<li><p><strong>emit</strong> (<em>bool</em><em>, </em><em>optional</em>) In emit mode the message is not associated
with a specific sender name.</p></li>
<li><p><strong>prefix</strong> (<em>bool</em><em>, </em><em>optional</em>) Prefix <strong>msg</strong> with a text given by <strong>self.channel_prefix</strong>.</p></li>
<li><p><strong>sender_strings</strong> (<em>list</em><em>, </em><em>optional</em>) Used by bots etc, one string per external sender.</p></li>
<li><p><strong>external</strong> (<em>bool</em><em>, </em><em>optional</em>) If this is an external sender or not.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.distribute_message">
<code class="sig-name descname">distribute_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">online</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.distribute_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.distribute_message" title="Permalink to this definition"></a></dt>
<dd><p>Method for grabbing all listeners that a message should be
sent to on this channel, and sending them a message.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msgobj</strong> (<a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.Msg" title="evennia.comms.models.Msg"><em>Msg</em></a><em> or </em><a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.TempMsg" title="evennia.comms.models.TempMsg"><em>TempMsg</em></a>) Message to distribute.</p></li>
<li><p><strong>online</strong> (<em>bool</em>) Only send to receivers who are actually online
(not currently used):</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This is also where logging happens, if enabled.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.msg">
<code class="sig-name descname">msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">header</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">sender_strings</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keep_log</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">online</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">emit</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">external</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.msg" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msgobj</strong> (<a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.Msg" title="evennia.comms.models.Msg"><em>Msg</em></a><em>, </em><a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.TempMsg" title="evennia.comms.models.TempMsg"><em>TempMsg</em></a><em> or </em><em>str</em>) 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 <strong>header</strong>
and <strong>senders</strong> keywords to create a Msg instance on the fly.</p></li>
<li><p><strong>header</strong> (<em>str</em><em>, </em><em>optional</em>) A header for building the message.</p></li>
<li><p><strong>senders</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>list</em><em>, </em><em>optional</em>) Optional if persistent=False, used
to build senders for the message.</p></li>
<li><p><strong>sender_strings</strong> (<em>list</em><em>, </em><em>optional</em>) 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.</p></li>
<li><p><strong>keep_log</strong> (<em>bool</em><em> or </em><em>None</em><em>, </em><em>optional</em>) This allows to temporarily change the logging status of
this channel message. If <strong>None</strong>, the Channels <strong>keep_log</strong> Attribute will
be used. If <strong>True</strong> or <strong>False</strong>, that logging status will be used for this
message only (note that for unlogged channels, a <strong>True</strong> value here will
create a new log file only for this message).</p></li>
<li><p><strong>online</strong> (<em>bool</em><em>, </em><em>optional</em>) online. Otherwise, messages all accounts connected. This can
make things faster, but may not trigger listeners on accounts
that are offline.</p></li>
<li><p><strong>emit</strong> (<em>bool</em><em>, </em><em>optional</em>) not to be directly associated with a name.</p></li>
<li><p><strong>external</strong> (<em>bool</em><em>, </em><em>optional</em>) Treat this message as being
agnostic of its sender.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>success (bool)</em> </p>
<dl class="simple">
<dt>Returns <strong>True</strong> if message sending was</dt><dd><p>successful, <strong>False</strong> otherwise.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.tempmsg">
<code class="sig-name descname">tempmsg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="n">header</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.tempmsg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.tempmsg" title="Permalink to this definition"></a></dt>
<dd><p>A wrapper for sending non-persistent messages.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) Message to send.</p></li>
<li><p><strong>header</strong> (<em>str</em><em>, </em><em>optional</em>) Header of message to send.</p></li>
<li><p><strong>senders</strong> (<em>Object</em><em> or </em><em>list</em><em>, </em><em>optional</em>) Senders of message to send.</p></li>
</ul>
</dd>
</dl>
<dd><p>Deletes channel.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.channel_prefix">
<code class="sig-name descname">channel_prefix</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">emit</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.channel_prefix"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_prefix" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">channel_prefix</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.channel_prefix"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_prefix" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. How the channel should prefix itself for users.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msg</strong> (<em>str</em><em>, </em><em>optional</em>) Prefix text</p></li>
<li><p><strong>emit</strong> (<em>bool</em><em>, </em><em>optional</em>) Switches to emit mode, which usually
means to not prefix the channels info.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>prefix (str)</em> The created channel prefix.</p>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>str</em> The channel prefix.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.format_senders">
<code class="sig-name descname">format_senders</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_senders"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_senders" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. Function used to format a list of sender names.</p>
<dt id="evennia.comms.comms.DefaultChannel.add_user_channel_alias">
<code class="sig-name descname">add_user_channel_alias</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">user</span></em>, <em class="sig-param"><span class="n">alias</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.add_user_channel_alias"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.add_user_channel_alias" title="Permalink to this definition"></a></dt>
<dd><p>Add a personal user-alias for this channel to a given subscriber.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>senders</strong> (<em>list</em>) Sender object names.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
<li><p><strong>user</strong> (<em>Object</em><em> or </em><em>Account</em>) The one to alias this channel.</p></li>
<li><p><strong>alias</strong> (<em>str</em>) The desired alias.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>formatted_list (str)</em> The list of names formatted appropriately.</p>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This is tightly coupled to the default <strong>channel</strong> command. If you
change that, you need to change this as well.</p>
<p>We add two nicks - one is a plain <strong>alias -&gt; channel.key</strong> 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 <strong>channel</strong> command. The
structure of this nick is given by <strong>self.channel_msg_nick_pattern</strong>
and <strong>self.channel_msg_nick_replacement</strong>. By default it maps
<strong>alias &lt;msg&gt; -&gt; channel &lt;channelname&gt; = &lt;msg&gt;</strong>, so that you can
for example just write <strong>pub Hello</strong> to send a message.</p>
<p>The alias created is <strong>alias $1 -&gt; channel channel = $1</strong>, to allow
for sending to channel using the main channel command.</p>
</div>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.remove_user_channel_alias">
<em class="property">classmethod </em><code class="sig-name descname">remove_user_channel_alias</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">user</span></em>, <em class="sig-param"><span class="n">alias</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.remove_user_channel_alias"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.remove_user_channel_alias" title="Permalink to this definition"></a></dt>
<dd><p>Remove a personal channel alias from a user.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user</strong> (<em>Object</em><em> or </em><em>Account</em>) The user to remove an alias from.</p></li>
<li><p><strong>alias</strong> (<em>str</em>) The alias to remove.</p></li>
<li><p><strong>**kwargs</strong> Unused by default. Can be used to pass extra variables
into a custom implementation.</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This function exists separately so that external sources
can use it to format source names in the same manner as
normal object/account names.</p>
<p>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.</p>
<p>This is a classmethod because it doesnt actually operate on the
channel instance.</p>
<p>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).</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.pose_transform">
<code class="sig-name descname">pose_transform</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">sender_string</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.pose_transform"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pose_transform" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. Detects if the sender is posing, and modifies the
message accordingly.</p>
<dt id="evennia.comms.comms.DefaultChannel.at_pre_msg">
<code class="sig-name descname">at_pre_msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.at_pre_msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_pre_msg" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msgobj</strong> (<a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.Msg" title="evennia.comms.models.Msg"><em>Msg</em></a><em> or </em><a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.TempMsg" title="evennia.comms.models.TempMsg"><em>TempMsg</em></a>) The message to analyze for a pose.</p></li>
<li><p><strong>sender_string</strong> (<em>str</em>) The name of the sender/poser.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
<li><p><strong>message</strong> (<em>str</em>) The message to send.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) Keywords passed on from <strong>.msg</strong>. This includes
<strong>senders</strong>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>string (str)</em> </p>
<dd class="field-even"><p><p><em>str, False or None</em> </p>
<dl class="simple">
<dt>A message that combines the <strong>sender_string</strong></dt><dd><p>component with <strong>msg</strong> in different ways depending on if a
pose was performed or not (this must be analyzed by the
hook).</p>
<dt>Any custom changes made to the message. If</dt><dd><p>falsy, no message will be sent.</p>
</dd>
</dl>
</p>
@ -416,44 +477,51 @@ hook).</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.format_external">
<code class="sig-name descname">format_external</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">senders</span></em>, <em class="sig-param"><span class="n">emit</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_external"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_external" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
<dt id="evennia.comms.comms.DefaultChannel.msg">
<code class="sig-name descname">msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">bypass_mute</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.msg" title="Permalink to this definition"></a></dt>
<dd><p>Send message to channel, causing it to be distributed to all non-muted
subscribed users of that channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msgobj</strong> (<a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.Msg" title="evennia.comms.models.Msg"><em>Msg</em></a><em> or </em><a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.TempMsg" title="evennia.comms.models.TempMsg"><em>TempMsg</em></a>) The message to send.</p></li>
<li><p><strong>senders</strong> (<em>list</em>) Strings, one per sender.</p></li>
<li><p><strong>emit</strong> (<em>bool</em><em>, </em><em>optional</em>) A sender-agnostic message or not.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
<li><p><strong>message</strong> (<em>str</em>) The message to send.</p></li>
<li><p><strong>senders</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>list</em><em>, </em><em>optional</em>) If not given, there is
no way to associate one or more senders with the message (like
a broadcast message or similar).</p></li>
<li><p><strong>bypass_mute</strong> (<em>bool</em><em>, </em><em>optional</em>) If set, always send, regardless of
individual mute-state of subscriber. This can be used for
global announcements or warnings/alerts.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) This will be passed on to all hooks. Use <strong>no_prefix</strong>
to exclude the channel prefix.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>transformed (str)</em> A formatted string.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The call hook calling sequence is:</p>
<ul class="simple">
<li><p><strong>msg = channel.at_pre_msg(message, **kwargs)</strong> (aborts for all if return None)</p></li>
<li><p><strong>msg = receiver.at_pre_channel_msg(msg, channel, **kwargs)</strong> (aborts for receiver if return None)</p></li>
<li><p><strong>receiver.at_channel_msg(msg, channel, **kwargs)</strong></p></li>
<li><p><strong>receiver.at_post_channel_msg(msg, channel, **kwargs)**</strong></p></li>
</ul>
<p>Called after all receivers are processed:
- <strong>channel.at_post_all_msg(message, **kwargs)</strong></p>
<p>(where the senders/bypass_mute are embedded into <a href="#id1"><span class="problematic" id="id2">**</span></a>kwargs for
later access in hooks)</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.format_message">
<code class="sig-name descname">format_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">emit</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_message" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. Formats a message body for display.</p>
<dt id="evennia.comms.comms.DefaultChannel.at_post_msg">
<code class="sig-name descname">at_post_msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.at_post_msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_post_msg" title="Permalink to this definition"></a></dt>
<dd><p>This is called after sending to <em>all</em> valid recipients. It is normally
used for logging/channel history.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msgobj</strong> (<a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.Msg" title="evennia.comms.models.Msg"><em>Msg</em></a><em> or </em><a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.TempMsg" title="evennia.comms.models.TempMsg"><em>TempMsg</em></a>) The message object to send.</p></li>
<li><p><strong>emit</strong> (<em>bool</em><em>, </em><em>optional</em>) The message is agnostic of senders.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
<li><p><strong>message</strong> (<em>str</em>) The message sent.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) Keywords passed on from <strong>msg</strong>, including <strong>senders</strong>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>transformed (str)</em> The formatted message.</p>
</dd>
</dl>
</dd></dl>
@ -489,6 +557,8 @@ overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>By default this adds the needed channel nicks to the joiner.</p>
</dd></dl>
<dl class="py method">
@ -525,41 +595,6 @@ overriding the call (unused by default).</p></li>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.pre_send_message">
<code class="sig-name descname">pre_send_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.pre_send_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pre_send_message" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msg</strong> (<a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.Msg" title="evennia.comms.models.Msg"><em>Msg</em></a><em> or </em><a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.TempMsg" title="evennia.comms.models.TempMsg"><em>TempMsg</em></a>) Message to send.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>result (Msg, TempMsg or bool)</em> If False, abort send.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.post_send_message">
<code class="sig-name descname">post_send_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.post_send_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.post_send_message" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. Run after a message is sent to the channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msg</strong> (<a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.Msg" title="evennia.comms.models.Msg"><em>Msg</em></a><em> or </em><a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.TempMsg" title="evennia.comms.models.TempMsg"><em>TempMsg</em></a>) Message sent.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.at_init">
<code class="sig-name descname">at_init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.at_init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_init" title="Permalink to this definition"></a></dt>
@ -614,11 +649,11 @@ this object.</p>
<p>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.</p>
<p>ex.
url(rchannels/(?P&lt;slug&gt;[wd-]+)/$,</p>
<blockquote>
<div><p>ChannelDetailView.as_view(), name=channel-detail)</p>
</div></blockquote>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;channels/(?P&lt;slug&gt;[\w\d\-]+)/$&#39;</span><span class="p">,</span>
<span class="n">ChannelDetailView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;channel-detail&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
@ -640,11 +675,11 @@ object.</p>
<p>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.</p>
<p>ex.
url(rchannels/(?P&lt;slug&gt;[wd-]+)/(?P&lt;pk&gt;[0-9]+)/change/$,</p>
<blockquote>
<div><p>ChannelUpdateView.as_view(), name=channel-update)</p>
</div></blockquote>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;channels/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/change/$&#39;</span><span class="p">,</span>
<span class="n">ChannelUpdateView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;channel-update&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
@ -691,11 +726,11 @@ this object.</p>
<p>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.</p>
<p>ex.
url(rchannels/(?P&lt;slug&gt;[wd-]+)/$,</p>
<blockquote>
<div><p>ChannelDetailView.as_view(), name=channel-detail)</p>
</div></blockquote>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;channels/(?P&lt;slug&gt;[\w\d\-]+)/$&#39;</span><span class="p">,</span>
<span class="n">ChannelDetailView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;channel-detail&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
@ -708,6 +743,46 @@ responsibility.</p>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.message_transform">
<code class="sig-name descname">message_transform</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.message_transform"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.message_transform" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.distribute_message">
<code class="sig-name descname">distribute_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">online</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.distribute_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.distribute_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.format_senders">
<code class="sig-name descname">format_senders</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_senders"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_senders" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.pose_transform">
<code class="sig-name descname">pose_transform</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">sender_string</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.pose_transform"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pose_transform" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.format_external">
<code class="sig-name descname">format_external</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">senders</span></em>, <em class="sig-param"><span class="n">emit</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_external"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_external" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.format_message">
<code class="sig-name descname">format_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">emit</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.pre_send_message">
<code class="sig-name descname">pre_send_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.pre_send_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pre_send_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.post_send_message">
<code class="sig-name descname">post_send_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.post_send_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.post_send_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py exception">
<dt id="evennia.comms.comms.DefaultChannel.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.DoesNotExist" title="Permalink to this definition"></a></dt>
@ -777,7 +852,6 @@ responsibility.</p>
<li><a href="../../0.9.5/api/evennia.comms.comms.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -794,6 +868,7 @@ responsibility.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.comms</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -94,7 +95,6 @@ as code related to external communication like IRC or RSS.</p>
<li><a href="../../0.9.5/api/evennia.comms.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -111,6 +111,7 @@ as code related to external communication like IRC or RSS.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.managers</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -135,19 +136,15 @@ of which may be Channels).</p>
<dl class="py method">
<dt id="evennia.comms.managers.MsgManager.get_messages_by_sender">
<code class="sig-name descname">get_messages_by_sender</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sender</span></em>, <em class="sig-param"><span class="n">exclude_channel_messages</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager.get_messages_by_sender"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager.get_messages_by_sender" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">get_messages_by_sender</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sender</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager.get_messages_by_sender"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager.get_messages_by_sender" title="Permalink to this definition"></a></dt>
<dd><p>Get all messages sent by one entity - this could be either a
account or an object</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sender</strong> (<em>Account</em><em> or </em><em>Object</em>) The sender of the message.</p></li>
<li><p><strong>exclude_channel_messages</strong> (<em>bool</em><em>, </em><em>optional</em>) Only return messages
not aimed at a channel (that is, private tells for example)</p></li>
</ul>
<dd class="field-odd"><p><strong>sender</strong> (<em>Account</em><em> or </em><em>Object</em>) The sender of the message.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>messages (list)</em> List of matching messages</p>
<dd class="field-even"><p><em>QuerySet</em> Matching messages.</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference internal" href="#evennia.comms.managers.CommError" title="evennia.comms.managers.CommError"><strong>CommError</strong></a> For incorrect sender types.</p>
@ -164,7 +161,7 @@ not aimed at a channel (that is, private tells for example)</p></li>
<dd class="field-odd"><p><strong>recipient</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>Channel</em>) The recipient of the messages to search for.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>messages (list)</em> Matching messages.</p>
<dd class="field-even"><p><em>Queryset</em> Matching messages.</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference internal" href="#evennia.comms.managers.CommError" title="evennia.comms.managers.CommError"><strong>CommError</strong></a> If the <strong>recipient</strong> is not of a valid type.</p>
@ -172,20 +169,6 @@ not aimed at a channel (that is, private tells for example)</p></li>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.MsgManager.get_messages_by_channel">
<code class="sig-name descname">get_messages_by_channel</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">channel</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager.get_messages_by_channel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager.get_messages_by_channel" title="Permalink to this definition"></a></dt>
<dd><p>Get all persistent messages sent to one channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>channel</strong> (<em>Channel</em>) The channel to find messages for.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>messages (list)</em> Persistent Msg objects saved for this channel.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.MsgManager.search_message">
<code class="sig-name descname">search_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sender</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">receiver</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">freetext</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dbref</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager.search_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager.search_message" title="Permalink to this definition"></a></dt>
@ -194,7 +177,7 @@ one of the arguments must be given to do a search.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sender</strong> (<em>Object</em><em> or </em><em>Account</em><em>, </em><em>optional</em>) Get messages sent by a particular account or object</p></li>
<li><p><strong>sender</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>Script</em><em>, </em><em>optional</em>) Get messages sent by a particular sender.</p></li>
<li><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>Channel</em><em>, </em><em>optional</em>) Get messages
received by a certain account,object or channel</p></li>
<li><p><strong>freetext</strong> (<em>str</em>) Search for a text string in a message. NOTE:
@ -206,7 +189,7 @@ always gives only one match.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>messages (list or Msg)</em> A list of message matches or a single match if <strong>dbref</strong> was given.</p>
<dd class="field-even"><p><em>Queryset</em> Message matches.</p>
</dd>
</dl>
</dd></dl>
@ -219,7 +202,7 @@ one of the arguments must be given to do a search.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sender</strong> (<em>Object</em><em> or </em><em>Account</em><em>, </em><em>optional</em>) Get messages sent by a particular account or object</p></li>
<li><p><strong>sender</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>Script</em><em>, </em><em>optional</em>) Get messages sent by a particular sender.</p></li>
<li><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>Channel</em><em>, </em><em>optional</em>) Get messages
received by a certain account,object or channel</p></li>
<li><p><strong>freetext</strong> (<em>str</em>) Search for a text string in a message. NOTE:
@ -231,7 +214,7 @@ always gives only one match.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>messages (list or Msg)</em> A list of message matches or a single match if <strong>dbref</strong> was given.</p>
<dd class="field-even"><p><em>Queryset</em> Message matches.</p>
</dd>
</dl>
</dd></dl>
@ -374,7 +357,6 @@ case sensitive) match.</p></li>
<li><a href="../../0.9.5/api/evennia.comms.managers.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -391,6 +373,7 @@ case sensitive) match.</p></li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.managers</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.models</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -64,17 +65,16 @@ accessed via specific handler methods):</p>
<li><p>db_sender_accounts: Account senders</p></li>
<li><p>db_sender_objects: Object senders</p></li>
<li><p>db_sender_scripts: Script senders</p></li>
<li><p>db_sender_external: External senders (defined as string names)</p></li>
<li><p>db_sender_external: External sender (defined as string name)</p></li>
<li><p>db_receivers_accounts: Receiving accounts</p></li>
<li><p>db_receivers_objects: Receiving objects</p></li>
<li><p>db_receivers_scripts: Receiveing scripts</p></li>
<li><p>db_receivers_channels: Receiving channels</p></li>
<li><p>db_receiver_external: External sender (defined as string name)</p></li>
<li><p>db_header: Header text</p></li>
<li><p>db_message: The actual message text</p></li>
<li><p>db_date_created: time message was created / sent</p></li>
<li><p>db_hide_from_sender: bool if message should be hidden from sender</p></li>
<li><p>db_hide_from_receivers: list of receiver objects to hide message from</p></li>
<li><p>db_hide_from_channels: list of channels objects to hide message from</p></li>
<li><p>db_lock_storage: Internal storage of lock strings.</p></li>
</ul>
<dl class="py attribute">
@ -181,19 +181,10 @@ class built by <strong>**create_forward_many_to_many_manager()**</strong> define
</dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.models.Msg.db_receivers_channels">
<code class="sig-name descname">db_receivers_channels</code><a class="headerlink" href="#evennia.comms.models.Msg.db_receivers_channels" title="Permalink to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
<dt id="evennia.comms.models.Msg.db_receiver_external">
<code class="sig-name descname">db_receiver_external</code><a class="headerlink" href="#evennia.comms.models.Msg.db_receiver_external" title="Permalink to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
@ -256,22 +247,6 @@ instances.</p>
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.models.Msg.db_hide_from_channels">
<code class="sig-name descname">db_hide_from_channels</code><a class="headerlink" href="#evennia.comms.models.Msg.db_hide_from_channels" title="Permalink to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.models.Msg.db_tags">
<code class="sig-name descname">db_tags</code><a class="headerlink" href="#evennia.comms.models.Msg.db_tags" title="Permalink to this definition"></a></dt>
@ -293,12 +268,6 @@ class built by <strong>**create_forward_many_to_many_manager()**</strong> define
<code class="sig-name descname">objects</code><em class="property"> = &lt;evennia.comms.managers.MsgManager object&gt;</em><a class="headerlink" href="#evennia.comms.models.Msg.objects" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.models.Msg.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#Msg.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.models.Msg.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.models.Msg.locks">
<code class="sig-name descname">locks</code><a class="reference internal" href="../_modules/evennia/comms/models.html#Msg.locks"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.models.Msg.locks" title="Permalink to this definition"></a></dt>
@ -312,7 +281,7 @@ class built by <strong>**create_forward_many_to_many_manager()**</strong> define
<dl class="py method">
<dt id="evennia.comms.models.Msg.senders">
<em class="property">property </em><code class="sig-name descname">senders</code><a class="headerlink" href="#evennia.comms.models.Msg.senders" title="Permalink to this definition"></a></dt>
<dd><p>Getter. Allows for value = self.sender</p>
<dd><p>Getter. Allows for value = self.senders</p>
</dd></dl>
<dl class="py method">
@ -321,7 +290,8 @@ class built by <strong>**create_forward_many_to_many_manager()**</strong> define
<dd><p>Remove a single sender or a list of senders.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>senders</strong> (<em>Account</em><em>, </em><em>Object</em><em>, </em><em>str</em><em> or </em><em>list</em>) Senders to remove.</p>
<dd class="field-odd"><p><strong>senders</strong> (<em>Account</em><em>, </em><em>Object</em><em>, </em><em>str</em><em> or </em><em>list</em>) Senders to remove.
If a string, removes the external sender.</p>
</dd>
</dl>
</dd></dl>
@ -330,31 +300,29 @@ class built by <strong>**create_forward_many_to_many_manager()**</strong> define
<dt id="evennia.comms.models.Msg.receivers">
<em class="property">property </em><code class="sig-name descname">receivers</code><a class="headerlink" href="#evennia.comms.models.Msg.receivers" title="Permalink to this definition"></a></dt>
<dd><p>Getter. Allows for value = self.receivers.
Returns four lists of receivers: accounts, objects, scripts and channels.</p>
Returns four lists of receivers: accounts, objects, scripts and</p>
<blockquote>
<div><p>external_receivers.</p>
</div></blockquote>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.models.Msg.remove_receiver">
<code class="sig-name descname">remove_receiver</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">receivers</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#Msg.remove_receiver"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.models.Msg.remove_receiver" title="Permalink to this definition"></a></dt>
<dd><p>Remove a single receiver or a list of receivers.</p>
<dd><p>Remove a single receiver, a list of receivers, or a single extral receiver.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>receivers</strong> (<em>Account</em><em>, </em><em>Object</em><em>, </em><em>Script</em><em>, </em><em>Channel</em><em> or </em><em>list</em>) Receiver to remove.</p>
<dd class="field-odd"><p><strong>receivers</strong> (<em>Account</em><em>, </em><em>Object</em><em>, </em><em>Script</em><em>, </em><em>list</em><em> or </em><em>str</em>) Receiver
to remove. A string removes the external receiver.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.models.Msg.channels">
<em class="property">property </em><code class="sig-name descname">channels</code><a class="headerlink" href="#evennia.comms.models.Msg.channels" title="Permalink to this definition"></a></dt>
<dd><p>Getter. Allows for value = self.channels. Returns a list of channels.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.models.Msg.hide_from">
<em class="property">property </em><code class="sig-name descname">hide_from</code><a class="headerlink" href="#evennia.comms.models.Msg.hide_from" title="Permalink to this definition"></a></dt>
<dd><p>Getter. Allows for value = self.hide_from.
Returns 3 lists of accounts, objects and channels</p>
Returns two lists of accounts and objects.</p>
</dd></dl>
<dl class="py method">
@ -433,6 +401,12 @@ object the first time, the query is executed.</p>
<code class="sig-name descname">path</code><em class="property"> = 'evennia.comms.models.Msg'</em><a class="headerlink" href="#evennia.comms.models.Msg.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.models.Msg.receiver_external">
<em class="property">property </em><code class="sig-name descname">receiver_external</code><a class="headerlink" href="#evennia.comms.models.Msg.receiver_external" title="Permalink to this definition"></a></dt>
<dd><p>A wrapper for getting database field <strong>db_receiver_external</strong>.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.models.Msg.sender_external">
<em class="property">property </em><code class="sig-name descname">sender_external</code><a class="headerlink" href="#evennia.comms.models.Msg.sender_external" title="Permalink to this definition"></a></dt>
@ -448,26 +422,24 @@ object the first time, the query is executed.</p>
<dl class="py class">
<dt id="evennia.comms.models.TempMsg">
<em class="property">class </em><code class="sig-prename descclassname">evennia.comms.models.</code><code class="sig-name descname">TempMsg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">receivers</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">channels</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">message</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">header</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">type</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">lockstring</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">hide_from</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#TempMsg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.models.TempMsg" title="Permalink to this definition"></a></dt>
<em class="property">class </em><code class="sig-prename descclassname">evennia.comms.models.</code><code class="sig-name descname">TempMsg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">receivers</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">message</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">header</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">type</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">lockstring</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">hide_from</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#TempMsg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.models.TempMsg" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>This is a non-persistent object for sending temporary messages
that will not be stored. It mimics the “real” Msg object, but
doesnt require sender to be given.</p>
<p>This is a non-persistent object for sending temporary messages that will not be stored. It
mimics the “real” Msg object, but doesnt require sender to be given.</p>
<dl class="py method">
<dt id="evennia.comms.models.TempMsg.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">receivers</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">channels</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">message</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">header</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">type</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">lockstring</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">hide_from</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#TempMsg.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.models.TempMsg.__init__" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">receivers</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">message</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">header</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">type</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">lockstring</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">hide_from</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#TempMsg.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.models.TempMsg.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Creates the temp message.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>senders</strong> (<em>any</em><em> or </em><em>list</em><em>, </em><em>optional</em>) Senders of the message.</p></li>
<li><p><strong>receivers</strong> (<em>Account</em><em>, </em><em>Object</em><em>, </em><em>Channel</em><em> or </em><em>list</em><em>, </em><em>optional</em>) Receivers of this message.</p></li>
<li><p><strong>channels</strong> (<em>Channel</em><em> or </em><em>list</em><em>, </em><em>optional</em>) Channels to send to.</p></li>
<li><p><strong>receivers</strong> (<em>Account</em><em>, </em><em>Object</em><em>, </em><em>Script</em><em> or </em><em>list</em><em>, </em><em>optional</em>) Receivers of this message.</p></li>
<li><p><strong>message</strong> (<em>str</em><em>, </em><em>optional</em>) Message to send.</p></li>
<li><p><strong>header</strong> (<em>str</em><em>, </em><em>optional</em>) Header of message.</p></li>
<li><p><strong>type</strong> (<em>str</em><em>, </em><em>optional</em>) Message class, if any.</p></li>
<li><p><strong>lockstring</strong> (<em>str</em><em>, </em><em>optional</em>) Lock for the message.</p></li>
<li><p><strong>hide_from</strong> (<em>Account</em><em>, </em><em>Object</em><em>, </em><em>Channel</em><em> or </em><em>list</em><em>, </em><em>optional</em>) Entities to hide this message from.</p></li>
<li><p><strong>hide_from</strong> (<em>Account</em><em>, </em><em>Object</em><em>, or </em><em>list</em><em>, </em><em>optional</em>) Entities to hide this message from.</p></li>
</ul>
</dd>
</dl>
@ -495,7 +467,7 @@ doesnt require sender to be given.</p>
<dd><p>Remove a receiver or a list of receivers</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em>, </em><em>Channel</em><em>, </em><em>str</em><em> or </em><em>list</em>) Receivers to remove.</p>
<dd class="field-odd"><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em>, </em><em>Script</em><em>, </em><em>str</em><em> or </em><em>list</em>) Receivers to remove.</p>
</dd>
</dl>
</dd></dl>
@ -571,11 +543,6 @@ class built by <strong>**create_forward_many_to_many_manager()**</strong> define
<code class="sig-name descname">objects</code><em class="property"> = &lt;evennia.comms.managers.ChannelDBManager object&gt;</em><a class="headerlink" href="#evennia.comms.models.ChannelDB.objects" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.models.ChannelDB.subscriptions">
<code class="sig-name descname">subscriptions</code><a class="reference internal" href="../_modules/evennia/comms/models.html#ChannelDB.subscriptions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.models.ChannelDB.subscriptions" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py exception">
<dt id="evennia.comms.models.ChannelDB.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.comms.models.ChannelDB.DoesNotExist" title="Permalink to this definition"></a></dt>
@ -588,22 +555,6 @@ class built by <strong>**create_forward_many_to_many_manager()**</strong> define
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.core.exceptions.MultipleObjectsReturned</span></code></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.models.ChannelDB.channel_set">
<code class="sig-name descname">channel_set</code><a class="headerlink" href="#evennia.comms.models.ChannelDB.channel_set" title="Permalink to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.models.ChannelDB.db_attributes">
<code class="sig-name descname">db_attributes</code><a class="headerlink" href="#evennia.comms.models.ChannelDB.db_attributes" title="Permalink to this definition"></a></dt>
@ -646,22 +597,6 @@ class built by <strong>**create_forward_many_to_many_manager()**</strong> define
<code class="sig-name descname">get_previous_by_db_date_created</code><span class="sig-paren">(</span><em class="sig-param">*</em>, <em class="sig-param">field=&lt;django.db.models.fields.DateTimeField: db_date_created&gt;</em>, <em class="sig-param">is_next=False</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.models.ChannelDB.get_previous_by_db_date_created" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.models.ChannelDB.hide_from_channels_set">
<code class="sig-name descname">hide_from_channels_set</code><a class="headerlink" href="#evennia.comms.models.ChannelDB.hide_from_channels_set" title="Permalink to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.models.ChannelDB.id">
<code class="sig-name descname">id</code><a class="headerlink" href="#evennia.comms.models.ChannelDB.id" title="Permalink to this definition"></a></dt>
@ -679,6 +614,11 @@ object the first time, the query is executed.</p>
<code class="sig-name descname">typename</code><em class="property"> = 'SharedMemoryModelBase'</em><a class="headerlink" href="#evennia.comms.models.ChannelDB.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.models.ChannelDB.subscriptions">
<code class="sig-name descname">subscriptions</code><a class="reference internal" href="../_modules/evennia/comms/models.html#ChannelDB.subscriptions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.models.ChannelDB.subscriptions" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -726,7 +666,6 @@ object the first time, the query is executed.</p>
<li><a href="../../0.9.5/api/evennia.comms.models.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -743,6 +682,7 @@ object the first time, the query is executed.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.models</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.awsstorage.aws_s3_cdn</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -37,8 +38,471 @@
<div class="bodywrapper">
<div class="body" role="main">
<section id="evennia-contrib-awsstorage-aws-s3-cdn">
<h1>evennia.contrib.awsstorage.aws_s3_cdn<a class="headerlink" href="#evennia-contrib-awsstorage-aws-s3-cdn" title="Permalink to this headline"></a></h1>
<section id="module-evennia.contrib.awsstorage.aws_s3_cdn">
<span id="evennia-contrib-awsstorage-aws-s3-cdn"></span><h1>evennia.contrib.awsstorage.aws_s3_cdn<a class="headerlink" href="#module-evennia.contrib.awsstorage.aws_s3_cdn" title="Permalink to this headline"></a></h1>
<p>AWS Storage System
The Right Honourable Reverend (trhr) 2020</p>
<p>ABOUT THIS PLUGIN:</p>
<p>This plugin migrates the Web-based portion of Evennia, namely images,
javascript, and other items located inside staticfiles into Amazon AWS (S3) for hosting.</p>
<p>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:</p>
<ol class="arabic simple">
<li><p>Servers supporting heavy web-based traffic (webclient, etc)</p></li>
<li><p>With a sizable number of users</p></li>
<li><p>Where the users are globally distributed</p></li>
<li><p>Where multimedia files are served to users as a part of gameplay</p></li>
</ol>
<p>Bottom line - if youre sending an image to a player every time they traverse a
map, the bandwidth reduction will be substantial. If not, probably skip
this one.</p>
<p>Note that storing and serving files via S3 is not technically free outside of
Amazons “free tier” offering, which you may or may not be eligible for;
evennias 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 AWSs pricing structure.</p>
<p>See the ./README.md file for details and install instructions.</p>
<dl class="py function">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.setting">
<code class="sig-prename descclassname">evennia.contrib.awsstorage.aws_s3_cdn.</code><code class="sig-name descname">setting</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">default</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#setting"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.setting" title="Permalink to this definition"></a></dt>
<dd><p>Helper function to get a Django setting by name. If setting doesnt exist
it will return a default.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>name</strong> (<em>str</em>) A Django setting name</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The value of the setting variable by that name</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.safe_join">
<code class="sig-prename descclassname">evennia.contrib.awsstorage.aws_s3_cdn.</code><code class="sig-name descname">safe_join</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">base</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">paths</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#safe_join"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.safe_join" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>base</strong> (<em>str</em>) A path string to the base of the staticfiles</p></li>
<li><p><strong>*paths</strong> (<em>list</em>) A list of paths as referenced from the base path</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>final_path (str)</em> A joined path, base + filepath</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.check_location">
<code class="sig-prename descclassname">evennia.contrib.awsstorage.aws_s3_cdn.</code><code class="sig-name descname">check_location</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">storage</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#check_location"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.check_location" title="Permalink to this definition"></a></dt>
<dd><p>Helper function to make sure that the storage location is configured correctly.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>storage</strong> (<em>Storage</em>) A Storage object (Django)</p>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><strong>ImproperlyConfigured</strong> If the storage location is not configured correctly,
this is raised.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.lookup_env">
<code class="sig-prename descclassname">evennia.contrib.awsstorage.aws_s3_cdn.</code><code class="sig-name descname">lookup_env</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">names</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#lookup_env"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.lookup_env" title="Permalink to this definition"></a></dt>
<dd><p>Helper function for looking up names in env vars. Returns the first element found.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>names</strong> (<em>str</em>) A list of environment variables</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>value (str)</em> The value of the found environment variable.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.get_available_overwrite_name">
<code class="sig-prename descclassname">evennia.contrib.awsstorage.aws_s3_cdn.</code><code class="sig-name descname">get_available_overwrite_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">max_length</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#get_available_overwrite_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.get_available_overwrite_name" title="Permalink to this definition"></a></dt>
<dd><p>Helper function indicating files that will be overwritten during trunc.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em>) The name of the file</p></li>
<li><p><strong>max_length</strong> (<em>int</em>) The maximum length of a filename</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>joined (path)</em> A joined path including directory, file, and extension</p>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.awsstorage.aws_s3_cdn.</code><code class="sig-name descname">S3Boto3StorageFile</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3StorageFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.core.files.base.File</span></code></p>
<p>The default file object used by the S3Boto3Storage backend.
This file implements file streaming using botos multipart
uploading functionality. The file can be opened in read or
write mode.
This class extends Djangos 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 <em>must</em> be closed using the close() method in
order to properly write the file to S3. Be sure to close the file
in your application.</p>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">mode</span></em>, <em class="sig-param"><span class="n">storage</span></em>, <em class="sig-param"><span class="n">buffer_size</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3StorageFile.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initializes the File object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em>) The name of the file</p></li>
<li><p><strong>mode</strong> (<em>str</em>) The access mode (r or w)</p></li>
<li><p><strong>storage</strong> (<em>Storage</em>) The Django Storage object</p></li>
<li><p><strong>buffer_size</strong> (<em>int</em>) The buffer size, for multipart uploads</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.buffer_size">
<code class="sig-name descname">buffer_size</code><em class="property"> = 5242880</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.buffer_size" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.size">
<em class="property">property </em><code class="sig-name descname">size</code><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.size" title="Permalink to this definition"></a></dt>
<dd><p>Helper property to return filesize</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.file">
<em class="property">property </em><code class="sig-name descname">file</code><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.file" title="Permalink to this definition"></a></dt>
<dd><p>Helper function to manage zipping and temporary files</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.read">
<code class="sig-name descname">read</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3StorageFile.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.read" title="Permalink to this definition"></a></dt>
<dd><p>Checks if file is in read mode; then continues to boto3 operation</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.readline">
<code class="sig-name descname">readline</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3StorageFile.readline"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.readline" title="Permalink to this definition"></a></dt>
<dd><p>Checks if file is in read mode; then continues to boto3 operation</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.write">
<code class="sig-name descname">write</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">content</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3StorageFile.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.write" title="Permalink to this definition"></a></dt>
<dd><p>Checks if file is in write mode or needs multipart handling,
then continues to boto3 operation.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.close">
<code class="sig-name descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3StorageFile.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.close" title="Permalink to this definition"></a></dt>
<dd><p>Manages file closing after multipart uploads</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.deconstruct">
<code class="sig-name descname">deconstruct</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3StorageFile.deconstruct" title="Permalink to this definition"></a></dt>
<dd><p>Return a 3-tuple of class import path, positional arguments,
and keyword arguments.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.awsstorage.aws_s3_cdn.</code><code class="sig-name descname">S3Boto3Storage</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.core.files.storage.Storage</span></code></p>
<p>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.</p>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.default_content_type">
<code class="sig-name descname">default_content_type</code><em class="property"> = 'application/octet-stream'</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.default_content_type" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.access_key_names">
<code class="sig-name descname">access_key_names</code><em class="property"> = ['AWS_S3_ACCESS_KEY_ID', 'AWS_ACCESS_KEY_ID']</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.access_key_names" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.secret_key_names">
<code class="sig-name descname">secret_key_names</code><em class="property"> = ['AWS_S3_SECRET_ACCESS_KEY', 'AWS_SECRET_ACCESS_KEY']</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.secret_key_names" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.security_token_names">
<code class="sig-name descname">security_token_names</code><em class="property"> = ['AWS_SESSION_TOKEN', 'AWS_SECURITY_TOKEN']</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.security_token_names" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.file_overwrite">
<code class="sig-name descname">file_overwrite</code><em class="property"> = True</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.file_overwrite" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.object_parameters">
<code class="sig-name descname">object_parameters</code><em class="property"> = {}</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.object_parameters" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.bucket_name">
<code class="sig-name descname">bucket_name</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.bucket_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.auto_create_bucket">
<code class="sig-name descname">auto_create_bucket</code><em class="property"> = False</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.auto_create_bucket" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.default_acl">
<code class="sig-name descname">default_acl</code><em class="property"> = 'public-read'</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.default_acl" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.bucket_acl">
<code class="sig-name descname">bucket_acl</code><em class="property"> = 'public-read'</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.bucket_acl" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.querystring_auth">
<code class="sig-name descname">querystring_auth</code><em class="property"> = True</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.querystring_auth" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.querystring_expire">
<code class="sig-name descname">querystring_expire</code><em class="property"> = 3600</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.querystring_expire" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.signature_version">
<code class="sig-name descname">signature_version</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.signature_version" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.reduced_redundancy">
<code class="sig-name descname">reduced_redundancy</code><em class="property"> = False</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.reduced_redundancy" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.location">
<code class="sig-name descname">location</code><em class="property"> = ''</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.location" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.encryption">
<code class="sig-name descname">encryption</code><em class="property"> = False</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.encryption" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.custom_domain">
<code class="sig-name descname">custom_domain</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.custom_domain" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.addressing_style">
<code class="sig-name descname">addressing_style</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.addressing_style" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.secure_urls">
<code class="sig-name descname">secure_urls</code><em class="property"> = True</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.secure_urls" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.file_name_charset">
<code class="sig-name descname">file_name_charset</code><em class="property"> = 'utf-8'</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.file_name_charset" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.gzip">
<code class="sig-name descname">gzip</code><em class="property"> = False</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.gzip" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.preload_metadata">
<code class="sig-name descname">preload_metadata</code><em class="property"> = False</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.preload_metadata" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.gzip_content_types">
<code class="sig-name descname">gzip_content_types</code><em class="property"> = ('text/css', 'text/javascript', 'application/javascript', 'application/x-javascript', 'image/svg+xml')</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.gzip_content_types" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.endpoint_url">
<code class="sig-name descname">endpoint_url</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.endpoint_url" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.proxies">
<code class="sig-name descname">proxies</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.proxies" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.region_name">
<code class="sig-name descname">region_name</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.region_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.use_ssl">
<code class="sig-name descname">use_ssl</code><em class="property"> = True</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.use_ssl" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.verify">
<code class="sig-name descname">verify</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.verify" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.max_memory_size">
<code class="sig-name descname">max_memory_size</code><em class="property"> = 0</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.max_memory_size" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">acl</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">bucket</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">settings</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Check if some of the settings weve provided as class attributes
need to be overwritten with values passed in here.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.url_protocol">
<code class="sig-name descname">url_protocol</code><em class="property"> = 'http:'</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.url_protocol" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.access_key">
<code class="sig-name descname">access_key</code><em class="property"> = ''</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.access_key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.secret_key">
<code class="sig-name descname">secret_key</code><em class="property"> = ''</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.secret_key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.security_token">
<code class="sig-name descname">security_token</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.security_token" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.config">
<code class="sig-name descname">config</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.config" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.connection">
<em class="property">property </em><code class="sig-name descname">connection</code><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.connection" title="Permalink to this definition"></a></dt>
<dd><p>Creates the actual connection to S3</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.bucket">
<em class="property">property </em><code class="sig-name descname">bucket</code><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.bucket" title="Permalink to this definition"></a></dt>
<dd><p>Get the current bucket. If there is no current bucket object
create it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.entries">
<em class="property">property </em><code class="sig-name descname">entries</code><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.entries" title="Permalink to this definition"></a></dt>
<dd><p>Get the locally cached files for the bucket.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.delete">
<code class="sig-name descname">delete</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage.delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.delete" title="Permalink to this definition"></a></dt>
<dd><p>Deletes a file from S3.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.exists">
<code class="sig-name descname">exists</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage.exists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.exists" title="Permalink to this definition"></a></dt>
<dd><p>Checks if file exists.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.listdir">
<code class="sig-name descname">listdir</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage.listdir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.listdir" title="Permalink to this definition"></a></dt>
<dd><p>Translational function to go from S3 file paths to the format
Djangos listdir expects.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.size">
<code class="sig-name descname">size</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage.size"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.size" title="Permalink to this definition"></a></dt>
<dd><p>Gets the filesize of a remote file.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.deconstruct">
<code class="sig-name descname">deconstruct</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.deconstruct" title="Permalink to this definition"></a></dt>
<dd><p>Return a 3-tuple of class import path, positional arguments,
and keyword arguments.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.get_object_parameters">
<code class="sig-name descname">get_object_parameters</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage.get_object_parameters"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.get_object_parameters" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.get_modified_time">
<code class="sig-name descname">get_modified_time</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage.get_modified_time"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.get_modified_time" title="Permalink to this definition"></a></dt>
<dd><p>Returns an (aware) datetime object containing the last modified time if
USE_TZ is True, otherwise returns a naive datetime in the local timezone.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.modified_time">
<code class="sig-name descname">modified_time</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage.modified_time"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.modified_time" title="Permalink to this definition"></a></dt>
<dd><p>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</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.url">
<code class="sig-name descname">url</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">parameters</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">expire</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage.url"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.url" title="Permalink to this definition"></a></dt>
<dd><p>Returns the URL of a remotely-hosted file</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.get_available_name">
<code class="sig-name descname">get_available_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">max_length</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/aws_s3_cdn.html#S3Boto3Storage.get_available_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.aws_s3_cdn.S3Boto3Storage.get_available_name" title="Permalink to this definition"></a></dt>
<dd><p>Overwrite existing file with the same name.</p>
</dd></dl>
</dd></dl>
</section>
@ -84,7 +548,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +564,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.awsstorage.aws_s3_cdn</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.awsstorage</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -39,6 +40,7 @@
<section id="module-evennia.contrib.awsstorage">
<span id="evennia-contrib-awsstorage"></span><h1>evennia.contrib.awsstorage<a class="headerlink" href="#module-evennia.contrib.awsstorage" title="Permalink to this headline"></a></h1>
<p>Intended to be a collecting folder for Django-specific contribs that do not have observable effects to players.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.awsstorage.aws_s3_cdn.html">evennia.contrib.awsstorage.aws_s3_cdn</a></li>
@ -90,7 +92,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -107,6 +108,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.awsstorage</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.awsstorage.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -37,8 +38,225 @@
<div class="bodywrapper">
<div class="body" role="main">
<section id="evennia-contrib-awsstorage-tests">
<h1>evennia.contrib.awsstorage.tests<a class="headerlink" href="#evennia-contrib-awsstorage-tests" title="Permalink to this headline"></a></h1>
<section id="module-evennia.contrib.awsstorage.tests">
<span id="evennia-contrib-awsstorage-tests"></span><h1>evennia.contrib.awsstorage.tests<a class="headerlink" href="#module-evennia.contrib.awsstorage.tests" title="Permalink to this headline"></a></h1>
<dl class="py class">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3TestCase">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.awsstorage.tests.</code><code class="sig-name descname">S3Boto3TestCase</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3TestCase"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3TestCase" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.test.testcases.TestCase</span></code></p>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3TestCase.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3TestCase.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3TestCase.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.awsstorage.tests.</code><code class="sig-name descname">S3Boto3StorageTests</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.awsstorage.tests.S3Boto3TestCase" title="evennia.contrib.awsstorage.tests.S3Boto3TestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.awsstorage.tests.S3Boto3TestCase</span></code></a></p>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_clean_name">
<code class="sig-name descname">test_clean_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_clean_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_clean_name" title="Permalink to this definition"></a></dt>
<dd><p>Test the base case of _clean_name</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_clean_name_normalize">
<code class="sig-name descname">test_clean_name_normalize</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_clean_name_normalize"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_clean_name_normalize" title="Permalink to this definition"></a></dt>
<dd><p>Test the normalization of _clean_name</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_clean_name_trailing_slash">
<code class="sig-name descname">test_clean_name_trailing_slash</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_clean_name_trailing_slash"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_clean_name_trailing_slash" title="Permalink to this definition"></a></dt>
<dd><p>Test the _clean_name when the path has a trailing slash</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_clean_name_windows">
<code class="sig-name descname">test_clean_name_windows</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_clean_name_windows"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_clean_name_windows" title="Permalink to this definition"></a></dt>
<dd><p>Test the _clean_name when the path has a trailing slash</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_pickle_with_bucket">
<code class="sig-name descname">test_pickle_with_bucket</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_pickle_with_bucket"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_pickle_with_bucket" title="Permalink to this definition"></a></dt>
<dd><p>Test that the storage can be pickled with a bucket attached</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_pickle_without_bucket">
<code class="sig-name descname">test_pickle_without_bucket</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_pickle_without_bucket"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_pickle_without_bucket" title="Permalink to this definition"></a></dt>
<dd><p>Test that the storage can be pickled, without a bucket instance</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_url_slashes">
<code class="sig-name descname">test_storage_url_slashes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_url_slashes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_url_slashes" title="Permalink to this definition"></a></dt>
<dd><p>Test URL generation.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_save">
<code class="sig-name descname">test_storage_save</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_save" title="Permalink to this definition"></a></dt>
<dd><p>Test saving a file</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_save_with_acl">
<code class="sig-name descname">test_storage_save_with_acl</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_save_with_acl"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_save_with_acl" title="Permalink to this definition"></a></dt>
<dd><p>Test saving a file with user defined ACL.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_content_type">
<code class="sig-name descname">test_content_type</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_content_type"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_content_type" title="Permalink to this definition"></a></dt>
<dd><p>Test saving a file with a None content type.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_save_gzipped">
<code class="sig-name descname">test_storage_save_gzipped</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_save_gzipped"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_save_gzipped" title="Permalink to this definition"></a></dt>
<dd><p>Test saving a gzipped file</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_save_gzip">
<code class="sig-name descname">test_storage_save_gzip</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_save_gzip"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_save_gzip" title="Permalink to this definition"></a></dt>
<dd><p>Test saving a file with gzip enabled.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_save_gzip_twice">
<code class="sig-name descname">test_storage_save_gzip_twice</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_save_gzip_twice"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_save_gzip_twice" title="Permalink to this definition"></a></dt>
<dd><p>Test saving the same file content twice with gzip enabled.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_compress_content_len">
<code class="sig-name descname">test_compress_content_len</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_compress_content_len"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_compress_content_len" title="Permalink to this definition"></a></dt>
<dd><p>Test that file returned by _compress_content() is readable.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_open_write">
<code class="sig-name descname">test_storage_open_write</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_open_write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_open_write" title="Permalink to this definition"></a></dt>
<dd><p>Test opening a file in write mode</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_open_no_write">
<code class="sig-name descname">test_storage_open_no_write</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_open_no_write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_open_no_write" title="Permalink to this definition"></a></dt>
<dd><p>Test opening file in write mode and closing without writing.</p>
<p>A file should be created as by obj.put(…).</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_open_no_overwrite_existing">
<code class="sig-name descname">test_storage_open_no_overwrite_existing</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_open_no_overwrite_existing"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_open_no_overwrite_existing" title="Permalink to this definition"></a></dt>
<dd><p>Test opening an existing file in write mode and closing without writing.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_write_beyond_buffer_size">
<code class="sig-name descname">test_storage_write_beyond_buffer_size</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_write_beyond_buffer_size"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_write_beyond_buffer_size" title="Permalink to this definition"></a></dt>
<dd><p>Test writing content that exceeds the buffer size</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_auto_creating_bucket">
<code class="sig-name descname">test_auto_creating_bucket</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_auto_creating_bucket"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_auto_creating_bucket" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_auto_creating_bucket_with_acl">
<code class="sig-name descname">test_auto_creating_bucket_with_acl</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_auto_creating_bucket_with_acl"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_auto_creating_bucket_with_acl" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_exists">
<code class="sig-name descname">test_storage_exists</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_exists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_exists" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_exists_false">
<code class="sig-name descname">test_storage_exists_false</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_exists_false"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_exists_false" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_exists_doesnt_create_bucket">
<code class="sig-name descname">test_storage_exists_doesnt_create_bucket</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_exists_doesnt_create_bucket"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_exists_doesnt_create_bucket" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_delete">
<code class="sig-name descname">test_storage_delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_delete" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_listdir_base">
<code class="sig-name descname">test_storage_listdir_base</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_listdir_base"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_listdir_base" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_listdir_subdir">
<code class="sig-name descname">test_storage_listdir_subdir</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_listdir_subdir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_listdir_subdir" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_size">
<code class="sig-name descname">test_storage_size</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_size"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_size" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_mtime">
<code class="sig-name descname">test_storage_mtime</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_mtime"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_mtime" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_url">
<code class="sig-name descname">test_storage_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_storage_url"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_storage_url" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_generated_url_is_encoded">
<code class="sig-name descname">test_generated_url_is_encoded</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_generated_url_is_encoded"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_generated_url_is_encoded" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_special_characters">
<code class="sig-name descname">test_special_characters</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_special_characters"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_special_characters" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_strip_signing_parameters">
<code class="sig-name descname">test_strip_signing_parameters</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_strip_signing_parameters"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_strip_signing_parameters" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_connection_threading">
<code class="sig-name descname">test_connection_threading</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_connection_threading"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_connection_threading" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_location_leading_slash">
<code class="sig-name descname">test_location_leading_slash</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_location_leading_slash"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_location_leading_slash" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_override_class_variable">
<code class="sig-name descname">test_override_class_variable</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_override_class_variable"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_override_class_variable" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_override_init_argument">
<code class="sig-name descname">test_override_init_argument</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/awsstorage/tests.html#S3Boto3StorageTests.test_override_init_argument"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.awsstorage.tests.S3Boto3StorageTests.test_override_init_argument" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -84,7 +302,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +318,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.awsstorage.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.barter</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -403,6 +404,11 @@ available to the command</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.barter.CmdTradeBase.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.barter.CmdTradeBase.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Base command for Trade commands to inherit from. Implements the\n custom parsing.\n '}</em><a class="headerlink" href="#evennia.contrib.barter.CmdTradeBase.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -446,6 +452,11 @@ available to the command</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.barter.CmdTradeHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.barter.CmdTradeHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.barter.CmdTradeHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -490,6 +501,11 @@ standing offer.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.barter.CmdOffer.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.barter.CmdOffer.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'trading', 'key': 'offer', 'tags': '', 'text': '\n offer one or more items in trade.\n\n Usage:\n offer &lt;object&gt; [, object2, ...][:emote]\n\n Offer objects in trade. This will replace the currently\n standing offer.\n '}</em><a class="headerlink" href="#evennia.contrib.barter.CmdOffer.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -537,6 +553,11 @@ the current offer using the offers command.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.barter.CmdAccept.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.barter.CmdAccept.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'agree', 'category': 'trading', 'key': 'accept', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.barter.CmdAccept.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -583,6 +604,11 @@ decline the old offer.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.barter.CmdDecline.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.barter.CmdDecline.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'trading', 'key': 'decline', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.barter.CmdDecline.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -627,6 +653,11 @@ determine if its worth your while.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.barter.CmdEvaluate.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.barter.CmdEvaluate.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'eval', 'category': 'trading', 'key': 'evaluate', 'tags': '', 'text': &quot;\n evaluate objects on offer\n\n Usage:\n evaluate &lt;offered object&gt;\n\n This allows you to examine any object currently on offer, to\n determine if it's worth your while.\n &quot;}</em><a class="headerlink" href="#evennia.contrib.barter.CmdEvaluate.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -651,7 +682,7 @@ try to influence the other part in the deal.</p>
<dl class="py attribute">
<dt id="evennia.contrib.barter.CmdStatus.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['deal', 'offers']</em><a class="headerlink" href="#evennia.contrib.barter.CmdStatus.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['offers', 'deal']</em><a class="headerlink" href="#evennia.contrib.barter.CmdStatus.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -675,6 +706,11 @@ try to influence the other part in the deal.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.barter.CmdStatus.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.barter.CmdStatus.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'offers deal', 'category': 'trading', 'key': 'status', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.barter.CmdStatus.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -719,6 +755,11 @@ finish trade [:say]</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.barter.CmdFinish.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.barter.CmdFinish.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.barter.CmdFinish.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -793,6 +834,11 @@ info to your choice.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.barter.CmdTrade.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.barter.CmdTrade.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'barter', 'category': 'general', 'key': 'trade', 'tags': '', 'text': '\n Initiate trade with another party\n\n Usage:\n trade &lt;other party&gt; [:say]\n trade &lt;other party&gt; accept [:say]\n trade &lt;other party&gt; 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 '}</em><a class="headerlink" href="#evennia.contrib.barter.CmdTrade.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -840,7 +886,6 @@ info to your choice.</p>
<li><a href="../../0.9.5/api/evennia.contrib.barter.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -857,6 +902,7 @@ info to your choice.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.barter</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.building_menu</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -251,6 +252,11 @@ overloading evential same-named class properties.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.building_menu.CmdNoInput.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.building_menu.CmdNoInput.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': 'No input has been found.'}</em><a class="headerlink" href="#evennia.contrib.building_menu.CmdNoInput.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -297,6 +303,11 @@ overloading evential same-named class properties.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.building_menu.CmdNoMatch.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.building_menu.CmdNoMatch.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': '__nomatch_command', 'tags': '', 'text': 'No input has been found.'}</em><a class="headerlink" href="#evennia.contrib.building_menu.CmdNoMatch.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -861,6 +872,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.building_menu.GenericBuildingCmd.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.building_menu.GenericBuildingCmd.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': '&#64;edit', 'tags': '', 'text': &quot;\n Generic building command.\n\n Syntax:\n &#64;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 &#64;edit here\n &#64;edit self\n &#64;edit #142\n\n &quot;}</em><a class="headerlink" href="#evennia.contrib.building_menu.GenericBuildingCmd.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -908,7 +924,6 @@ set in self.parse())</p>
<li><a href="../../0.9.5/api/evennia.contrib.building_menu.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -925,6 +940,7 @@ set in self.parse())</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.building_menu</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.chargen</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -77,7 +78,7 @@ at them with this command.</p>
<dl class="py attribute">
<dt id="evennia.contrib.chargen.CmdOOCLook.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.contrib.chargen.CmdOOCLook.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.contrib.chargen.CmdOOCLook.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -107,6 +108,11 @@ that is checked by the &#64;ic command directly.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.chargen.CmdOOCLook.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.chargen.CmdOOCLook.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n ooc look\n\n Usage:\n look\n look &lt;character&gt;\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 &quot;self&quot;.\n\n If any characters are available for you to control, you may look\n at them with this command.\n '}</em><a class="headerlink" href="#evennia.contrib.chargen.CmdOOCLook.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -152,6 +158,11 @@ attribute on ourselves to remember it.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.chargen.CmdOOCCharacterCreate.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.chargen.CmdOOCCharacterCreate.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'create', 'tags': '', 'text': '\n creates a character\n\n Usage:\n create &lt;character name&gt;\n\n This will create a new character, assuming\n the given character name does not already exist.\n '}</em><a class="headerlink" href="#evennia.contrib.chargen.CmdOOCCharacterCreate.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -217,7 +228,6 @@ attribute on ourselves to remember it.</p>
<li><a href="../../0.9.5/api/evennia.contrib.chargen.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -234,6 +244,7 @@ attribute on ourselves to remember it.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.chargen</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.clothing</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -359,6 +360,11 @@ provide will be displayed after the clothings name.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.clothing.CmdWear.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.clothing.CmdWear.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'clothing', 'key': 'wear', 'tags': '', 'text': &quot;\n Puts on an item of clothing you are holding.\n\n Usage:\n wear &lt;obj&gt; [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 &quot;}</em><a class="headerlink" href="#evennia.contrib.clothing.CmdWear.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -399,6 +405,11 @@ off the covering item first.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.clothing.CmdRemove.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.clothing.CmdRemove.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'clothing', 'key': 'remove', 'tags': '', 'text': &quot;\n Takes off an item of clothing.\n\n Usage:\n remove &lt;obj&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.clothing.CmdRemove.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -439,6 +450,11 @@ You cant remove an item of clothing if its covered.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.clothing.CmdCover.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.clothing.CmdCover.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'clothing', 'key': 'cover', 'tags': '', 'text': &quot;\n Covers a worn item of clothing with another you're holding or wearing.\n\n Usage:\n cover &lt;obj&gt; [with] &lt;obj&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.clothing.CmdCover.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -480,6 +496,11 @@ it is also covered by something else.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.clothing.CmdUncover.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.clothing.CmdUncover.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'clothing', 'key': 'uncover', 'tags': '', 'text': &quot;\n Reveals a worn item of clothing that's currently covered up.\n\n Usage:\n uncover &lt;obj&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.clothing.CmdUncover.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -529,6 +550,11 @@ location you are currently in.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.clothing.CmdDrop.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.clothing.CmdDrop.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'drop', 'tags': '', 'text': '\n drop something\n\n Usage:\n drop &lt;obj&gt;\n\n Lets you drop an object from your inventory into the\n location you are currently in.\n '}</em><a class="headerlink" href="#evennia.contrib.clothing.CmdDrop.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -578,6 +604,11 @@ placing it in their inventory.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.clothing.CmdGive.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.clothing.CmdGive.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'give', 'tags': '', 'text': '\n give away something to someone\n\n Usage:\n give &lt;inventory obj&gt; = &lt;target&gt;\n\n Gives an items from your inventory to another character,\n placing it in their inventory.\n '}</em><a class="headerlink" href="#evennia.contrib.clothing.CmdGive.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -627,6 +658,11 @@ inv</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.clothing.CmdInventory.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.clothing.CmdInventory.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.clothing.CmdInventory.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -700,7 +736,6 @@ items.</p>
<li><a href="../../0.9.5/api/evennia.contrib.clothing.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -717,6 +752,7 @@ items.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.clothing</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.color_markups</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -126,7 +127,6 @@ COLOR_ANSI_BRIGHT_BGS_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_BRIGHT_BGS_EXTR
<li><a href="../../0.9.5/api/evennia.contrib.color_markups.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -143,6 +143,7 @@ COLOR_ANSI_BRIGHT_BGS_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_BRIGHT_BGS_EXTR
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.color_markups</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -39,6 +39,7 @@
<li class="nav-item nav-item-1"><a href="../Contribs/Contrib-Overview.html" accesskey="U">Contrib modules</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.crafting.crafting</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -46,8 +47,776 @@
<div class="bodywrapper">
<div class="body" role="main">
<section id="evennia-contrib-crafting-crafting">
<h1>evennia.contrib.crafting.crafting<a class="headerlink" href="#evennia-contrib-crafting-crafting" title="Permalink to this headline"></a></h1>
<section id="module-evennia.contrib.crafting.crafting">
<span id="evennia-contrib-crafting-crafting"></span><h1>evennia.contrib.crafting.crafting<a class="headerlink" href="#module-evennia.contrib.crafting.crafting" title="Permalink to this headline"></a></h1>
<p>Crafting - Griatch 2020</p>
<p>This is a general crafting engine. The basic functionality of crafting is to
combine any number of of items or tools in a recipe to produce a new result.</p>
<blockquote>
<div><p>item + item + item + tool + tool -&gt; recipe -&gt; new result</p>
</div></blockquote>
<p>This is useful not only for traditional crafting but the engine is flexible
enough to also be useful for puzzles or similar.</p>
<section id="installation">
<h2>Installation<a class="headerlink" href="#installation" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Add the <strong>CmdCraft</strong> Command from this module to your default cmdset. This
allows for crafting from in-game using a simple syntax.</p></li>
<li><p>Create a new module and add it to a new list in your settings file
(<strong>server/conf/settings.py</strong>) named <strong>CRAFT_RECIPES_MODULES</strong>, such as
<strong>CRAFT_RECIPE_MODULES = [“world.recipes_weapons”]</strong>.</p></li>
<li><p>In the new module(s), create one or more classes, each a child of
<strong>CraftingRecipe</strong> from this module. Each such class must have a unique <strong>.name</strong>
property. It also defines what inputs are required and what is created using
this recipe.</p></li>
<li><p>Objects to use for crafting should (by default) be tagged with tags using the
tag-category <strong>crafting_material</strong> or <strong>crafting_tool</strong>. The name of the object
doesnt matter, only its tag.</p></li>
</ul>
</section>
<section id="crafting-in-game">
<h2>Crafting in game<a class="headerlink" href="#crafting-in-game" title="Permalink to this headline"></a></h2>
<p>The default <strong>craft</strong> command handles all crafting needs.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&gt;</span> <span class="n">craft</span> <span class="n">spiked</span> <span class="n">club</span> <span class="kn">from</span> <span class="nn">club</span><span class="p">,</span> <span class="n">nails</span>
</pre></div>
</div>
<p>Here, <strong>spiked club</strong> specifies the recipe while <strong>club</strong> and <strong>nails</strong> are objects
the crafter must have in their inventory. These will be consumed during
crafting (by default only if crafting was successful).</p>
<p>A recipe can also require <em>tools</em> (like the <strong>hammer</strong> above). These must be
either in inventory <em>or</em> be in the current location. Tools are <em>not</em> consumed
during the crafting process.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&gt;</span> <span class="n">craft</span> <span class="n">wooden</span> <span class="n">doll</span> <span class="kn">from</span> <span class="nn">wood</span> <span class="k">with</span> <span class="n">knife</span>
</pre></div>
</div>
</section>
<section id="crafting-in-code">
<h2>Crafting in code<a class="headerlink" href="#crafting-in-code" title="Permalink to this headline"></a></h2>
<p>In code, you should use the helper function <strong>craft</strong> from this module. This
specifies the name of the recipe to use and expects all suitable
ingredients/tools as arguments (consumables and tools should be added together,
tools will be identified before consumables).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">evennia.contrib.crafting</span> <span class="kn">import</span> <span class="n">crafting</span>
<span class="n">spiked_club</span> <span class="o">=</span> <span class="n">crafting</span><span class="o">.</span><span class="n">craft</span><span class="p">(</span><span class="n">crafter</span><span class="p">,</span> <span class="s2">&quot;spiked club&quot;</span><span class="p">,</span> <span class="n">club</span><span class="p">,</span> <span class="n">nails</span><span class="p">)</span>
</pre></div>
</div>
<p>The result is always a list with zero or more objects. A fail leads to an empty
list. The crafter should already have been notified of any error in this case
(this should be handle by the recipe itself).</p>
</section>
<section id="recipes">
<h2>Recipes<a class="headerlink" href="#recipes" title="Permalink to this headline"></a></h2>
<p>A <em>recipe</em> is a class that works like an input/output blackbox: you initialize
it with consumables (and/or tools) if they match the recipe, a new
result is spit out. Consumables are consumed in the process while tools are not.</p>
<p>This module contains a base class for making new ingredient types
(<strong>CraftingRecipeBase</strong>) and an implementation of the most common form of
crafting (<strong>CraftingRecipe</strong>) using objects and prototypes.</p>
<p>Recipes are put in one or more modules added as a list to the
<strong>CRAFT_RECIPE_MODULES</strong> setting, for example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">CRAFT_RECIPE_MODULES</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;world.recipes_weapons&#39;</span><span class="p">,</span> <span class="s1">&#39;world.recipes_potions&#39;</span><span class="p">]</span>
</pre></div>
</div>
<p>Below is an example of a crafting recipe and how <strong>craft</strong> calls it under the
hood. See the <strong>CraftingRecipe</strong> class for details of which properties and
methods are available to override - the craft behavior can be modified
substantially this way.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">evennia.contrib.crafting.crafting</span> <span class="kn">import</span> <span class="n">CraftingRecipe</span>
<span class="k">class</span> <span class="nc">PigIronRecipe</span><span class="p">(</span><span class="n">CraftingRecipe</span><span class="p">):</span>
<span class="c1"># Pig iron is a high-carbon result of melting iron in a blast furnace.</span>
<span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;pig iron&quot;</span> <span class="c1"># this is what crafting.craft and CmdCraft uses</span>
<span class="n">tool_tags</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;blast furnace&quot;</span><span class="p">]</span>
<span class="n">consumable_tags</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;iron ore&quot;</span><span class="p">,</span> <span class="s2">&quot;coal&quot;</span><span class="p">,</span> <span class="s2">&quot;coal&quot;</span><span class="p">]</span>
<span class="n">output_prototypes</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">{</span><span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="s2">&quot;Pig Iron ingot&quot;</span><span class="p">,</span>
<span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;An ingot of crude pig iron.&quot;</span><span class="p">,</span>
<span class="s2">&quot;tags&quot;</span><span class="p">:</span> <span class="p">[(</span><span class="s2">&quot;pig iron&quot;</span><span class="p">,</span> <span class="s2">&quot;crafting_material&quot;</span><span class="p">)]}</span>
<span class="p">]</span>
<span class="c1"># for testing, conveniently spawn all we need based on the tags on the class</span>
<span class="n">tools</span><span class="p">,</span> <span class="n">consumables</span> <span class="o">=</span> <span class="n">PigIronRecipe</span><span class="o">.</span><span class="n">seed</span><span class="p">()</span>
<span class="n">recipe</span> <span class="o">=</span> <span class="n">PigIronRecipe</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="o">*</span><span class="p">(</span><span class="n">tools</span> <span class="o">+</span> <span class="n">consumables</span><span class="p">))</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">recipe</span><span class="o">.</span><span class="n">craft</span><span class="p">()</span>
</pre></div>
</div>
<p>If the above class was added to a module in <strong>CRAFT_RECIPE_MODULES</strong>, it could be
called using its <strong>.name</strong> property, as “pig iron”.</p>
<p>The [example_recipies](api:evennia.contrib.crafting.example_recipes) module has
a full example of the components for creating a sword from base components.</p>
<hr class="docutils" />
<dl class="py exception">
<dt id="evennia.contrib.crafting.crafting.CraftingError">
<em class="property">exception </em><code class="sig-prename descclassname">evennia.contrib.crafting.crafting.</code><code class="sig-name descname">CraftingError</code><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingError" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">RuntimeError</span></code></p>
<p>Crafting error.</p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.crafting.crafting.CraftingValidationError">
<em class="property">exception </em><code class="sig-prename descclassname">evennia.contrib.crafting.crafting.</code><code class="sig-name descname">CraftingValidationError</code><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingValidationError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingValidationError" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.crafting.crafting.CraftingError" title="evennia.contrib.crafting.crafting.CraftingError"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.crafting.CraftingError</span></code></a></p>
<p>Error if crafting validation failed.</p>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipeBase">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.crafting.</code><code class="sig-name descname">CraftingRecipeBase</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipeBase"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipeBase" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>The recipe handles all aspects of performing a craft operation. This is
the base of the crafting system, intended to be replace if you want to
adapt it for very different functionality - see the <strong>CraftingRecipe</strong> child
class for an implementation of the most common type of crafting using
objects.</p>
<p>Example of usage:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">recipe</span> <span class="o">=</span> <span class="n">CraftRecipe</span><span class="p">(</span><span class="n">crafter</span><span class="p">,</span> <span class="n">obj1</span><span class="p">,</span> <span class="n">obj2</span><span class="p">,</span> <span class="n">obj3</span><span class="p">)</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">recipe</span><span class="o">.</span><span class="n">craft</span><span class="p">()</span>
</pre></div>
</div>
<p>Note that the most common crafting operation is that the inputs are
consumed - so in that case the recipe cannot be used a second time (doing so
will raise a <strong>CraftingError</strong>)</p>
<p>Process:</p>
<ol class="arabic simple">
<li><p><strong>.craft(**kwargs)</strong> - this starts the process on the initialized recipe. The kwargs
are optional but will be passed into all of the following hooks.</p></li>
<li><p><strong>.pre_craft(**kwargs)</strong> - this normally validates inputs and stores them in
<strong>.validated_inputs.</strong>. Raises <strong>CraftingValidationError</strong> otherwise.</p></li>
</ol>
<ol class="arabic simple" start="4">
<li><p><strong>.do_craft(**kwargs)</strong> - should return the crafted item(s) or the empty list. Any
crafting errors should be immediately reported to user.</p></li>
<li><p><strong>.post_craft(crafted_result, **kwargs)</strong>- always called, even if <strong>pre_craft</strong>
raised a <strong>CraftingError</strong> or <strong>CraftingValidationError</strong>.
Should return <strong>crafted_result</strong> (modified or not).</p></li>
</ol>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipeBase.name">
<code class="sig-name descname">name</code><em class="property"> = 'recipe base'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipeBase.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipeBase.allow_reuse">
<code class="sig-name descname">allow_reuse</code><em class="property"> = False</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipeBase.allow_reuse" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipeBase.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipeBase.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipeBase.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize the recipe.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>crafter</strong> (<em>Object</em>) The one doing the crafting.</p></li>
<li><p><strong>*inputs</strong> (<em>any</em>) The ingredients of the recipe to use.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) Any other parameters that are relevant for
this recipe.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipeBase.msg">
<code class="sig-name descname">msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipeBase.msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipeBase.msg" title="Permalink to this definition"></a></dt>
<dd><p>Send message to crafter. This is a central point to override if wanting
to change crafting return style in some way.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) The message to send.</p></li>
<li><p><strong>**kwargs</strong> Any optional properties relevant to this send.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipeBase.pre_craft">
<code class="sig-name descname">pre_craft</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipeBase.pre_craft"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipeBase.pre_craft" title="Permalink to this definition"></a></dt>
<dd><p>Hook to override.</p>
<p>This is called just before crafting operation and is normally
responsible for validating the inputs, storing data on
<strong>self.validated_inputs</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>**kwargs</strong> Optional extra flags passed during initialization or</p></li>
<li><p><strong>**.craft</strong> </p></li>
</ul>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><a class="reference internal" href="#evennia.contrib.crafting.crafting.CraftingValidationError" title="evennia.contrib.crafting.crafting.CraftingValidationError"><strong>CraftingValidationError</strong></a> If validation fails.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipeBase.do_craft">
<code class="sig-name descname">do_craft</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipeBase.do_craft"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipeBase.do_craft" title="Permalink to this definition"></a></dt>
<dd><p>Hook to override.</p>
<p>This performs the actual crafting. At this point the inputs are
expected to have been verified already. If needed, the validated
inputs are available on this recipe instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>**kwargs</strong> Any extra flags passed at initialization.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>any</em> The result of crafting.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipeBase.post_craft">
<code class="sig-name descname">post_craft</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafting_result</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipeBase.post_craft"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipeBase.post_craft" title="Permalink to this definition"></a></dt>
<dd><p>Hook to override.</p>
<p>This is called just after crafting has finished. A common use of this
method is to delete the inputs.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>crafting_result</strong> (<em>any</em>) The outcome of crafting, as returned by <strong>do_craft</strong>.</p></li>
<li><p><strong>**kwargs</strong> Any extra flags passed at initialization.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>any</em> The final crafting result.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipeBase.craft">
<code class="sig-name descname">craft</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">raise_exception</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipeBase.craft"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipeBase.craft" title="Permalink to this definition"></a></dt>
<dd><p>Main crafting call method. Call this to produce a result and make
sure all hooks run correctly.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>raise_exception</strong> (<em>bool</em>) If crafting would return <strong>None</strong>, raise
exception instead.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) Any other parameters that is relevant
for this particular craft operation. This will temporarily
override same-named kwargs given at the creation of this recipe
and be passed into all of the crafting hooks.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>any</em> The result of the craft, or <strong>None</strong> if crafting failed.</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="#evennia.contrib.crafting.crafting.CraftingValidationError" title="evennia.contrib.crafting.crafting.CraftingValidationError"><strong>CraftingValidationError</strong></a> If recipe validation failed and
<strong>raise_exception</strong> is True.</p></li>
<li><p><a class="reference internal" href="#evennia.contrib.crafting.crafting.CraftingError" title="evennia.contrib.crafting.crafting.CraftingError"><strong>CraftingError</strong></a> On If trying to rerun a no-rerun recipe, or if crafting
would return <strong>None</strong> and raise_exception** is set.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.crafting.</code><code class="sig-name descname">CraftingRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.crafting.crafting.CraftingRecipeBase" title="evennia.contrib.crafting.crafting.CraftingRecipeBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.crafting.CraftingRecipeBase</span></code></a></p>
<p>The CraftRecipe implements the most common form of crafting: Combining (and
consuming) inputs to produce a new result. This type of recipe only works
with typeclassed entities as inputs and outputs, since its based on Tags
and Prototypes.</p>
<p>There are two types of crafting ingredients: tools and consumables. The
difference between them is that the former is not consumed in the crafting
process. So if you need a hammer and anvil to craft a sword, they are
tools whereas the materials of the sword are consumables.</p>
<p>Examples:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">FlourRecipe</span><span class="p">(</span><span class="n">CraftRecipe</span><span class="p">):</span>
<span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;flour&quot;</span>
<span class="n">tool_tags</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;windmill&#39;</span><span class="p">]</span>
<span class="n">consumable_tags</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;wheat&quot;</span><span class="p">]</span>
<span class="n">output_prototypes</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">{</span><span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="s2">&quot;Bag of flour&quot;</span><span class="p">,</span>
<span class="s2">&quot;typeclass&quot;</span><span class="p">:</span> <span class="s2">&quot;typeclasses.food.Flour&quot;</span><span class="p">,</span>
<span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;A small bag of flour.&quot;</span>
<span class="s2">&quot;tags&quot;</span><span class="p">:</span> <span class="p">[(</span><span class="s2">&quot;flour&quot;</span><span class="p">,</span> <span class="s2">&quot;crafting_material&quot;</span><span class="p">),</span>
<span class="p">}</span>
<span class="k">class</span> <span class="nc">BreadRecipe</span><span class="p">(</span><span class="n">CraftRecipe</span><span class="p">):</span>
<span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;bread&quot;</span>
<span class="n">tool_tags</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;roller&quot;</span><span class="p">,</span> <span class="s2">&quot;owen&quot;</span><span class="p">]</span>
<span class="n">consumable_tags</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;flour&quot;</span><span class="p">,</span> <span class="s2">&quot;egg&quot;</span><span class="p">,</span> <span class="s2">&quot;egg&quot;</span><span class="p">,</span> <span class="s2">&quot;salt&quot;</span><span class="p">,</span> <span class="s2">&quot;water&quot;</span><span class="p">,</span> <span class="s2">&quot;yeast&quot;</span><span class="p">]</span>
<span class="n">output_prototypes</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">{</span><span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="s2">&quot;bread&quot;</span><span class="p">,</span>
<span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;A tasty bread.&quot;</span>
<span class="p">}</span>
</pre></div>
</div>
<ul class="simple">
<li><p><strong>name</strong> (str): The name of this recipe. This should be globally unique.</p></li>
</ul>
<ul class="simple">
<li><p><strong>tool_tag_category</strong> (str): What tag-category tools must use. Default is
crafting_tool.</p></li>
<li><p><strong>tool_tags</strong> (list): Object-tags to use for tooling. If more than one instace
of a tool is needed, add multiple entries here.</p></li>
<li><p><strong>tool_names</strong> (list): Human-readable names for tools. These are used for informative
messages/errors. If not given, the tags will be used. If given, this list should
match the length of <strong>tool_tags</strong>.:</p></li>
<li><p><strong>exact_tools</strong> (bool, default True): Must have exactly the right tools, any extra
leads to failure.</p></li>
<li><p><strong>exact_tool_order</strong> (bool, default False): Tools must be added in exactly the
right order for crafting to pass.</p></li>
</ul>
<ul class="simple">
<li><p><strong>consumable_tag_category</strong> (str): What tag-category consumables must use.
Default is crafting_material.</p></li>
<li><p><strong>consumable_tags</strong> (list): Tags for objects that will be consumed as part of
running the recipe.</p></li>
<li><p><strong>consumable_names</strong> (list): Human-readable names for consumables. Same as for tools.</p></li>
<li><p><strong>exact_consumables</strong> (bool, default True): Normally, adding more consumables
than needed leads to a a crafting error. If this is False, the craft will
still succeed (only the needed ingredients will be consumed).</p></li>
<li><p><strong>exact_consumable_order</strong> (bool, default False): Normally, the order in which
ingredients are added does not matter. With this set, trying to add consumables in
another order than given will lead to failing crafting.</p></li>
<li><p><strong>consume_on_fail</strong> (bool, default False): Normally, consumables remain if
crafting fails. With this flag, a failed crafting will still consume
consumables. Note that this will also consume any extra consumables
added not part of the recipe!</p></li>
</ul>
<ul class="simple">
<li><p><strong>output_prototypes</strong> (list): One or more prototypes (<strong>prototype_keys</strong> or
full dicts) describing how to create the result(s) of this recipe.</p></li>
<li><p><strong>output_names</strong> (list): Human-readable names for (prospective) prototypes.
This is used in error messages. If not given, this is extracted from the
prototypes <strong>key</strong> if possible.</p></li>
</ul>
<p>custom messages all have custom formatting markers. Many are empty strings
when not applicable.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="n">missing</span><span class="p">}:</span> <span class="n">Comma</span><span class="o">-</span><span class="n">separated</span> <span class="nb">list</span> <span class="n">of</span> <span class="n">tool</span><span class="o">/</span><span class="n">consumable</span> <span class="n">missing</span> <span class="k">for</span> <span class="n">missing</span><span class="o">/</span><span class="n">out</span> <span class="n">of</span> <span class="n">order</span> <span class="n">errors</span><span class="o">.</span>
<span class="p">{</span><span class="n">excess</span><span class="p">}:</span> <span class="n">Comma</span><span class="o">-</span><span class="n">separated</span> <span class="nb">list</span> <span class="n">of</span> <span class="n">tool</span><span class="o">/</span><span class="n">consumable</span> <span class="n">added</span> <span class="ow">in</span> <span class="n">excess</span> <span class="n">of</span> <span class="n">recipe</span>
<span class="p">{</span><span class="n">inputs</span><span class="p">}:</span> <span class="n">Comma</span><span class="o">-</span><span class="n">separated</span> <span class="nb">list</span> <span class="n">of</span> <span class="nb">any</span> <span class="n">inputs</span> <span class="p">(</span><span class="n">tools</span> <span class="o">+</span> <span class="n">consumables</span><span class="p">)</span> <span class="n">involved</span> <span class="ow">in</span> <span class="n">error</span><span class="o">.</span>
<span class="p">{</span><span class="n">tools</span><span class="p">}:</span> <span class="n">Comma</span><span class="o">-</span><span class="n">sepatated</span> <span class="nb">list</span> <span class="n">of</span> <span class="n">tools</span> <span class="n">involved</span> <span class="ow">in</span> <span class="n">error</span><span class="o">.</span>
<span class="p">{</span><span class="n">consumables</span><span class="p">}:</span> <span class="n">Comma</span><span class="o">-</span><span class="n">separated</span> <span class="nb">list</span> <span class="n">of</span> <span class="n">consumables</span> <span class="n">involved</span> <span class="ow">in</span> <span class="n">error</span><span class="o">.</span>
<span class="p">{</span><span class="n">outputs</span><span class="p">}:</span> <span class="n">Comma</span><span class="o">-</span><span class="n">separated</span> <span class="nb">list</span> <span class="n">of</span> <span class="p">(</span><span class="n">expected</span><span class="p">)</span> <span class="n">outputs</span>
<span class="p">{</span><span class="n">t0</span><span class="p">}</span><span class="o">..</span><span class="p">{</span><span class="n">tN</span><span class="o">-</span><span class="mi">1</span><span class="p">}:</span> <span class="n">Individual</span> <span class="n">tools</span><span class="p">,</span> <span class="n">same</span> <span class="n">order</span> <span class="k">as</span> <span class="o">**.</span><span class="n">tool_names</span><span class="o">**.</span>
<span class="p">{</span><span class="n">c0</span><span class="p">}</span><span class="o">..</span><span class="p">{</span><span class="n">cN</span><span class="o">-</span><span class="mi">1</span><span class="p">}:</span> <span class="n">Individual</span> <span class="n">consumables</span><span class="p">,</span> <span class="n">same</span> <span class="n">order</span> <span class="k">as</span> <span class="o">**.</span><span class="n">consumable_names</span><span class="o">**.</span>
<span class="p">{</span><span class="n">o0</span><span class="p">}</span><span class="o">..</span><span class="p">{</span><span class="n">oN</span><span class="o">-</span><span class="mi">1</span><span class="p">}:</span> <span class="n">Individual</span> <span class="n">outputs</span><span class="p">,</span> <span class="n">same</span> <span class="n">order</span> <span class="k">as</span> <span class="o">**.</span><span class="n">output_names</span><span class="o">**.</span>
</pre></div>
</div>
<ul class="simple">
<li><p><strong>error_tool_missing_message</strong>: “Could not craft {outputs} without {missing}.”</p></li>
<li><p><strong>error_tool_order_message</strong>:
“Could not craft {outputs} since {missing} was added in the wrong order.”</p></li>
<li><p><strong>error_tool_excess_message</strong>: “Could not craft {outputs} (extra {excess}).”</p></li>
<li><p><strong>error_consumable_missing_message</strong>: “Could not craft {outputs} without {missing}.”</p></li>
<li><p><strong>error_consumable_order_message</strong>:
“Could not craft {outputs} since {missing} was added in the wrong order.”</p></li>
<li><p><strong>error_consumable_excess_message</strong>: “Could not craft {outputs} (excess {excess}).”</p></li>
<li><p><strong>success_message</strong>: “You successfuly craft {outputs}!”</p></li>
<li><p><strong>failure_message</strong>: “” (this is handled by the other error messages by default)</p></li>
</ul>
<ol class="arabic simple">
<li><p>Crafting starts by calling <strong>.craft(**kwargs)</strong> on the parent class. The
<strong>**kwargs</strong> are optional, extends any <strong>**kwargs</strong> passed to the class
constructor and will be passed into all the following hooks.</p></li>
</ol>
<ol class="arabic simple" start="3">
<li><p><strong>.pre_craft(**kwargs)</strong> should handle validation of inputs. Results should
be stored in <strong>validated_consumables/tools</strong> respectively. Raises <strong>CraftingValidationError</strong>
otherwise.</p></li>
<li><p><strong>.do_craft(**kwargs)</strong> will not be called if validation failed. Should return
a list of the things crafted.</p></li>
<li><p><strong>.post_craft(crafting_result, **kwargs)</strong> is always called, also if validation
failed (<strong>crafting_result</strong> will then be falsy). It does any cleanup. By default
this deletes consumables.</p></li>
</ol>
<p>Use <strong>.msg</strong> to conveniently send messages to the crafter. Raise
<strong>evennia.contrib.crafting.crafting.CraftingError</strong> exception to abort
crafting at any time in the sequence. If raising with a text, this will be
shown to the crafter automatically</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'crafting recipe'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.consumable_tag_category">
<code class="sig-name descname">consumable_tag_category</code><em class="property"> = 'crafting_material'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.consumable_tag_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.tool_tag_category">
<code class="sig-name descname">tool_tag_category</code><em class="property"> = 'crafting_tool'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.tool_tag_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = []</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.exact_tools">
<code class="sig-name descname">exact_tools</code><em class="property"> = True</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.exact_tools" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.exact_tool_order">
<code class="sig-name descname">exact_tool_order</code><em class="property"> = False</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.exact_tool_order" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.error_tool_missing_message">
<code class="sig-name descname">error_tool_missing_message</code><em class="property"> = 'Could not craft {outputs} without {missing}.'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.error_tool_missing_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.error_tool_order_message">
<code class="sig-name descname">error_tool_order_message</code><em class="property"> = 'Could not craft {outputs} since {missing} was added in the wrong order.'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.error_tool_order_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.error_tool_excess_message">
<code class="sig-name descname">error_tool_excess_message</code><em class="property"> = 'Could not craft {outputs} without the exact tools (extra {excess}).'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.error_tool_excess_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = []</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.consume_on_fail">
<code class="sig-name descname">consume_on_fail</code><em class="property"> = False</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.consume_on_fail" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.exact_consumables">
<code class="sig-name descname">exact_consumables</code><em class="property"> = True</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.exact_consumables" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.exact_consumable_order">
<code class="sig-name descname">exact_consumable_order</code><em class="property"> = False</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.exact_consumable_order" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.error_consumable_missing_message">
<code class="sig-name descname">error_consumable_missing_message</code><em class="property"> = 'Could not craft {outputs} without {missing}.'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.error_consumable_missing_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.error_consumable_order_message">
<code class="sig-name descname">error_consumable_order_message</code><em class="property"> = 'Could not craft {outputs} since {missing} was added in the wrong order.'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.error_consumable_order_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.error_consumable_excess_message">
<code class="sig-name descname">error_consumable_excess_message</code><em class="property"> = 'Could not craft {outputs} without the exact ingredients (extra {excess}).'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.error_consumable_excess_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = []</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.failure_message">
<code class="sig-name descname">failure_message</code><em class="property"> = ''</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.failure_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.success_message">
<code class="sig-name descname">success_message</code><em class="property"> = 'You successfully craft {outputs}!'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.success_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipe.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.__init__" title="Permalink to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>crafter</strong> (<em>Object</em>) The one doing the crafting.</p></li>
<li><p><strong>*inputs</strong> (<em>Object</em>) The ingredients (+tools) of the recipe to use. The
The recipe will itself figure out (from tags) which is a tool and
which is a consumable.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) Any other parameters that are relevant for
this recipe. These will be passed into the crafting hooks.</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Internally, this class stores validated data in
<strong>.validated_consumables</strong> and <strong>.validated_tools</strong> respectively. The
<strong>.validated_inputs</strong> property (from parent) holds a list of everything
types in the order inserted to the class constructor.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.consumable_names">
<code class="sig-name descname">consumable_names</code><em class="property"> = []</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.consumable_names" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.tool_names">
<code class="sig-name descname">tool_names</code><em class="property"> = []</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.tool_names" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.output_names">
<code class="sig-name descname">output_names</code><em class="property"> = []</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.output_names" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.seed">
<em class="property">classmethod </em><code class="sig-name descname">seed</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">tool_kwargs</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">consumable_kwargs</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipe.seed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.seed" title="Permalink to this definition"></a></dt>
<dd><p>This is a helper class-method for easy testing and application of this
recipe. When called, it will create simple dummy ingredients with names
and tags needed by this recipe.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>consumable_kwargs</strong> (<em>dict</em><em>, </em><em>optional</em>) This will be passed as
<strong>**consumable_kwargs</strong> into the <strong>create_object</strong> call for each consumable.
If not given, matching <strong>consumable_name</strong> or <strong>consumable_tag</strong>
will be used for key.</p></li>
<li><p><strong>tool_kwargs</strong> (<em>dict</em><em>, </em><em>optional</em>) Will be passed as <strong>**tool_kwargs</strong> into the <strong>create_object</strong>
call for each tool. If not given, the matching
<strong>tool_name</strong> or <strong>tool_tag</strong> will be used for key.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>tuple</em> A tuple <strong>(tools, consumables)</strong> with newly created dummy
objects matching the recipe ingredient list.</p>
</dd>
</dl>
<p>Example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">tools</span><span class="p">,</span> <span class="n">consumables</span> <span class="o">=</span> <span class="n">SwordRecipe</span><span class="o">.</span><span class="n">seed</span><span class="p">()</span>
<span class="n">recipe</span> <span class="o">=</span> <span class="n">SwordRecipe</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="o">*</span><span class="p">(</span><span class="n">tools</span> <span class="o">+</span> <span class="n">consumables</span><span class="p">))</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">recipe</span><span class="o">.</span><span class="n">craft</span><span class="p">()</span>
</pre></div>
</div>
<p class="rubric">Notes</p>
<p>If <strong>key</strong> is given in <strong>consumable/tool_kwargs</strong> then _every_ created item
of each type will have the same key.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.pre_craft">
<code class="sig-name descname">pre_craft</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipe.pre_craft"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.pre_craft" title="Permalink to this definition"></a></dt>
<dd><p>Do pre-craft checks, including input validation.</p>
<p>Check so the given inputs are what is needed. This operates on
<strong>self.inputs</strong> which is set to the inputs added to the class
constructor. Validated data is stored as lists on <strong>.validated_tools</strong>
and <strong>.validated_consumables</strong> respectively.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>**kwargs</strong> Any optional extra kwargs passed during initialization of
the recipe class.</p>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><a class="reference internal" href="#evennia.contrib.crafting.crafting.CraftingValidationError" title="evennia.contrib.crafting.crafting.CraftingValidationError"><strong>CraftingValidationError</strong></a> If validation fails. At this point the crafter
is expected to have been informed of the problem already.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.do_craft">
<code class="sig-name descname">do_craft</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipe.do_craft"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.do_craft" title="Permalink to this definition"></a></dt>
<dd><p>Hook to override. This will not be called if validation in <strong>pre_craft</strong>
fails.</p>
<p>This performs the actual crafting. At this point the inputs are
expected to have been verified already.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>list</em> </p>
<dl class="simple">
<dt>A list of spawned objects created from the inputs, or None</dt><dd><p>on a failure.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This method should use <strong>self.msg</strong> to inform the user about the
specific reason of failure immediately.
We may want to analyze the tools in some way here to affect the
crafting process.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingRecipe.post_craft">
<code class="sig-name descname">post_craft</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">craft_result</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingRecipe.post_craft"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingRecipe.post_craft" title="Permalink to this definition"></a></dt>
<dd><p>Hook to override.
This is called just after crafting has finished. A common use of
this method is to delete the inputs.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>craft_result</strong> (<em>list</em>) The crafted result, provided by <strong>self.do_craft</strong>.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) Passed from <strong>self.craft</strong>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>list</em> The return(s) of the craft, possibly modified in this method.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This is _always_ called, also if validation in <strong>pre_craft</strong> fails
(<strong>craft_result</strong> will then be <strong>None</strong>).</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.crafting.crafting.craft">
<code class="sig-prename descclassname">evennia.contrib.crafting.crafting.</code><code class="sig-name descname">craft</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="n">recipe_name</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="n">raise_exception</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#craft"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.craft" title="Permalink to this definition"></a></dt>
<dd><p>Access function. Craft a given recipe from a source recipe module. A
recipe module is a Python module containing recipe classes. Note that this
requires <strong>settings.CRAFT_RECIPE_MODULES</strong> to be added to a list of one or
more python-paths to modules holding Recipe-classes.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>crafter</strong> (<em>Object</em>) The one doing the crafting.</p></li>
<li><p><strong>recipe_name</strong> (<em>str</em>) The <strong>CraftRecipe.name</strong> to use. This uses fuzzy-matching
if the result is unique.</p></li>
<li><p><strong>*inputs</strong> Suitable ingredients and/or tools (Objects) to use in the crafting.</p></li>
<li><p><strong>raise_exception</strong> (<em>bool</em><em>, </em><em>optional</em>) If crafting failed for whatever
reason, raise <strong>CraftingError</strong>. The user will still be informed by the
recipe.</p></li>
<li><p><strong>**kwargs</strong> Optional kwargs to pass into the recipe (will passed into
recipe.craft).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>list</em> Crafted objects, if any.</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="#evennia.contrib.crafting.crafting.CraftingError" title="evennia.contrib.crafting.crafting.CraftingError"><strong>CraftingError</strong></a> If <strong>raise_exception</strong> is True and crafting failed to</p></li>
<li><p><strong>produce an output. KeyError</strong> If <strong>recipe_name</strong> failed to find a</p></li>
<li><p><strong>matching recipe class</strong><strong> (or </strong><strong>the hit was not precise enough.</strong><strong>)</strong> </p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If no recipe_module is given, will look for a list <strong>settings.CRAFT_RECIPE_MODULES</strong> and
lastly fall back to the example module <strong>“evennia.contrib.”</strong></p>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.crafting.CraftingCmdSet">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.crafting.</code><code class="sig-name descname">CraftingCmdSet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdsetobj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">key</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingCmdSet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingCmdSet" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.cmdset.html#evennia.commands.cmdset.CmdSet" title="evennia.commands.cmdset.CmdSet"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.cmdset.CmdSet</span></code></a></p>
<p>Store crafting command.</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingCmdSet.key">
<code class="sig-name descname">key</code><em class="property"> = 'Crafting cmdset'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingCmdSet.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CraftingCmdSet.at_cmdset_creation">
<code class="sig-name descname">at_cmdset_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CraftingCmdSet.at_cmdset_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingCmdSet.at_cmdset_creation" title="Permalink to this definition"></a></dt>
<dd><p>Hook method - this should be overloaded in the inheriting
class, and should take care of populating the cmdset by use of
self.add().</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CraftingCmdSet.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.crafting.crafting.CraftingCmdSet'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CraftingCmdSet.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.crafting.CmdCraft">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.crafting.</code><code class="sig-name descname">CmdCraft</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CmdCraft"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CmdCraft" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>Craft an item using ingredients and tools</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>craft &lt;recipe&gt; [from &lt;ingredient&gt;,…] [using &lt;tool&gt;, …]</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<p>craft snowball from snow
craft puppet from piece of wood using knife
craft bread from flour, butter, water, yeast using owen, bowl, roller
craft fireball using wand, spellbook</p>
<p class="rubric">Notes</p>
<p>Ingredients must be in the crafters inventory. Tools can also be
things in the current location, like a furnace, windmill or anvil.</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CmdCraft.key">
<code class="sig-name descname">key</code><em class="property"> = 'craft'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CmdCraft.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CmdCraft.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CmdCraft.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CmdCraft.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CmdCraft.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CmdCraft.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = []</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CmdCraft.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CmdCraft.arg_regex">
<code class="sig-name descname">arg_regex</code><em class="property"> = re.compile('\\s|$', re.IGNORECASE)</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CmdCraft.arg_regex" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CmdCraft.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CmdCraft.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.crafting.CmdCraft.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'craft', 'tags': '', 'text': &quot;\n Craft an item using ingredients and tools\n\n Usage:\n craft &lt;recipe&gt; [from &lt;ingredient&gt;,...] [using &lt;tool&gt;, ...]\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.crafting.crafting.CmdCraft.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CmdCraft.parse">
<code class="sig-name descname">parse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CmdCraft.parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CmdCraft.parse" title="Permalink to this definition"></a></dt>
<dd><p>Handle parsing of:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">recipe</span><span class="o">&gt;</span> <span class="p">[</span><span class="n">FROM</span> <span class="o">&lt;</span><span class="n">ingredients</span><span class="o">&gt;</span><span class="p">]</span> <span class="p">[</span><span class="n">USING</span> <span class="o">&lt;</span><span class="n">tools</span><span class="o">&gt;</span><span class="p">]</span>
</pre></div>
</div>
<p>Examples:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">craft</span> <span class="n">snowball</span> <span class="kn">from</span> <span class="nn">snow</span>
<span class="n">craft</span> <span class="n">puppet</span> <span class="kn">from</span> <span class="nn">piece</span> <span class="n">of</span> <span class="n">wood</span> <span class="n">using</span> <span class="n">knife</span>
<span class="n">craft</span> <span class="n">bread</span> <span class="kn">from</span> <span class="nn">flour</span><span class="p">,</span> <span class="n">butter</span><span class="p">,</span> <span class="n">water</span><span class="p">,</span> <span class="n">yeast</span> <span class="n">using</span> <span class="n">owen</span><span class="p">,</span> <span class="n">bowl</span><span class="p">,</span> <span class="n">roller</span>
<span class="n">craft</span> <span class="n">fireball</span> <span class="n">using</span> <span class="n">wand</span><span class="p">,</span> <span class="n">spellbook</span>
</pre></div>
</div>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.crafting.CmdCraft.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/crafting.html#CmdCraft.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.crafting.CmdCraft.func" title="Permalink to this definition"></a></dt>
<dd><p>Perform crafting.</p>
<p>Will check the <strong>craft</strong> locktype. If a consumable/ingredient does not pass
this check, we will check for the crafting_consumable_err_msg
Attribute, otherwise will use a default. If failing on a tool, will use
the <strong>crafting_tool_err_msg</strong> if available.</p>
</dd></dl>
</dd></dl>
</section>
</section>
@ -70,6 +839,17 @@
</div>
</div>
<script>$('#searchbox').show(0);</script>
<p><h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.contrib.crafting.crafting</a><ul>
<li><a class="reference internal" href="#installation">Installation</a></li>
<li><a class="reference internal" href="#crafting-in-game">Crafting in game</a></li>
<li><a class="reference internal" href="#crafting-in-code">Crafting in code</a></li>
<li><a class="reference internal" href="#recipes">Recipes</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="../Contribs/Crafting.html"
title="previous chapter">Crafting system contrib</a></p>
@ -99,7 +879,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -123,6 +902,7 @@
<li class="nav-item nav-item-1"><a href="../Contribs/Contrib-Overview.html" >Contrib modules</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.crafting.crafting</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -39,6 +39,7 @@
<li class="nav-item nav-item-1"><a href="../Contribs/Contrib-Overview.html" accesskey="U">Contrib modules</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.crafting.example_recipes</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -46,8 +47,344 @@
<div class="bodywrapper">
<div class="body" role="main">
<section id="evennia-contrib-crafting-example-recipes">
<h1>evennia.contrib.crafting.example_recipes<a class="headerlink" href="#evennia-contrib-crafting-example-recipes" title="Permalink to this headline"></a></h1>
<section id="module-evennia.contrib.crafting.example_recipes">
<span id="evennia-contrib-crafting-example-recipes"></span><h1>evennia.contrib.crafting.example_recipes<a class="headerlink" href="#module-evennia.contrib.crafting.example_recipes" title="Permalink to this headline"></a></h1>
<p>How to make a sword - example crafting tree for the crafting system.</p>
<p>See the <strong>SwordSmithingBaseRecipe</strong> in this module for an example of extendng the
recipe with a mocked skill system (just random chance in our case). The skill
system used is game-specific but likely to be needed for most real crafting
systems.</p>
<p>Note that tools are references to the tools used - they dont need to be in
the inventory of the crafter. So when blast furnace is given below, it is a
reference to a blast furnace used, not suggesting the crafter is carrying it
around with them.</p>
<section id="sword-crafting-tree">
<h2>Sword crafting tree<a class="headerlink" href="#sword-crafting-tree" title="Permalink to this headline"></a></h2>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># base materials (consumables)</span>
<span class="n">iron</span> <span class="n">ore</span><span class="p">,</span> <span class="n">ash</span><span class="p">,</span> <span class="n">sand</span><span class="p">,</span> <span class="n">coal</span><span class="p">,</span> <span class="n">oak</span> <span class="n">wood</span><span class="p">,</span> <span class="n">water</span><span class="p">,</span> <span class="n">fur</span>
<span class="c1"># base tools (marked with [T] for clarity and assumed to already exist)</span>
<span class="n">blast</span> <span class="n">furnace</span><span class="p">[</span><span class="n">T</span><span class="p">],</span> <span class="n">furnace</span><span class="p">[</span><span class="n">T</span><span class="p">],</span> <span class="n">crucible</span><span class="p">[</span><span class="n">T</span><span class="p">],</span> <span class="n">anvil</span><span class="p">[</span><span class="n">T</span><span class="p">],</span>
<span class="n">hammer</span><span class="p">[</span><span class="n">T</span><span class="p">],</span> <span class="n">knife</span><span class="p">[</span><span class="n">T</span><span class="p">],</span> <span class="n">cauldron</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
<span class="c1"># recipes for making a sword</span>
<span class="n">pig</span> <span class="n">iron</span> <span class="o">=</span> <span class="n">iron</span> <span class="n">ore</span> <span class="o">+</span> <span class="mi">2</span><span class="n">xcoal</span> <span class="o">+</span> <span class="n">blast</span> <span class="n">furnace</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
<span class="n">crucible_steel</span> <span class="o">=</span> <span class="n">pig</span> <span class="n">iron</span> <span class="o">+</span> <span class="n">ash</span> <span class="o">+</span> <span class="n">sand</span> <span class="o">+</span> <span class="mi">2</span><span class="n">xcoal</span> <span class="o">+</span> <span class="n">crucible</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
<span class="n">sword</span> <span class="n">blade</span> <span class="o">=</span> <span class="n">crucible</span> <span class="n">steel</span> <span class="o">+</span> <span class="n">hammer</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">+</span> <span class="n">anvil</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">+</span> <span class="n">furnace</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
<span class="n">sword</span> <span class="n">pommel</span> <span class="o">=</span> <span class="n">crucible</span> <span class="n">steel</span> <span class="o">+</span> <span class="n">hammer</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">+</span> <span class="n">anvil</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">+</span> <span class="n">furnace</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
<span class="n">sword</span> <span class="n">guard</span> <span class="o">=</span> <span class="n">crucible</span> <span class="n">steel</span> <span class="o">+</span> <span class="n">hammer</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">+</span> <span class="n">anvil</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">+</span> <span class="n">furnace</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
<span class="n">rawhide</span> <span class="o">=</span> <span class="n">fur</span> <span class="o">+</span> <span class="n">knife</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
<span class="n">oak</span> <span class="n">bark</span> <span class="o">+</span> <span class="n">cleaned</span> <span class="n">oak</span> <span class="n">wood</span> <span class="o">=</span> <span class="n">oak</span> <span class="n">wood</span> <span class="o">+</span> <span class="n">knife</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
<span class="n">leather</span> <span class="o">=</span> <span class="n">rawhide</span> <span class="o">+</span> <span class="n">oak</span> <span class="n">bark</span> <span class="o">+</span> <span class="n">water</span> <span class="o">+</span> <span class="n">cauldron</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
<span class="n">sword</span> <span class="n">handle</span> <span class="o">=</span> <span class="n">cleaned</span> <span class="n">oak</span> <span class="n">wood</span> <span class="o">+</span> <span class="n">knife</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
<span class="n">sword</span> <span class="o">=</span> <span class="n">sword</span> <span class="n">blade</span> <span class="o">+</span> <span class="n">sword</span> <span class="n">guard</span> <span class="o">+</span> <span class="n">sword</span> <span class="n">pommel</span>
<span class="o">+</span> <span class="n">sword</span> <span class="n">handle</span> <span class="o">+</span> <span class="n">leather</span> <span class="o">+</span> <span class="n">knife</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">+</span> <span class="n">hammer</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">+</span> <span class="n">furnace</span><span class="p">[</span><span class="n">T</span><span class="p">]</span>
</pre></div>
</div>
<hr class="docutils" />
<dl class="py function">
<dt id="evennia.contrib.crafting.example_recipes.random">
<code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">random</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; x in the interval [0, 1).<a class="headerlink" href="#evennia.contrib.crafting.example_recipes.random" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.example_recipes.PigIronRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">PigIronRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/example_recipes.html#PigIronRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.PigIronRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.contrib.crafting.crafting.html#evennia.contrib.crafting.crafting.CraftingRecipe" title="evennia.contrib.crafting.crafting.CraftingRecipe"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.crafting.CraftingRecipe</span></code></a></p>
<p>Pig iron is a high-carbon result of melting iron in a blast furnace.</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.PigIronRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'pig iron'</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.PigIronRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.PigIronRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = ['blast furnace']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.PigIronRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.PigIronRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = ['iron ore', 'coal', 'coal']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.PigIronRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.PigIronRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = [{'key': 'Pig Iron ingot', 'desc': 'An ingot of crude pig iron.', 'tags': [('pig iron', 'crafting_material')]}]</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.PigIronRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">CrucibleSteelRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/example_recipes.html#CrucibleSteelRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.contrib.crafting.crafting.html#evennia.contrib.crafting.crafting.CraftingRecipe" title="evennia.contrib.crafting.crafting.CraftingRecipe"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.crafting.CraftingRecipe</span></code></a></p>
<p>Mixing pig iron with impurities like ash and sand and melting it in a
crucible produces a medieval level of steel (like damascus steel).</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'crucible steel'</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = ['crucible']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = ['pig iron', 'ash', 'sand', 'coal', 'coal']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = [{'key': 'Crucible steel ingot', 'desc': 'An ingot of multi-colored crucible steel.', 'tags': [('crucible steel', 'crafting_material')]}]</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.CrucibleSteelRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.example_recipes.SwordBladeRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">SwordBladeRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/example_recipes.html#SwordBladeRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordBladeRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.example_recipes._SwordSmithingBaseRecipe</span></code></p>
<p>A [sword]blade requires hammering the steel out into shape using heat and
force. This also includes the tang, which is the base for the hilt (the
part of the sword you hold on to).</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordBladeRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'sword blade'</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordBladeRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordBladeRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = ['hammer', 'anvil', 'furnace']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordBladeRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordBladeRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = ['crucible steel']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordBladeRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordBladeRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = [{'key': 'Sword blade', 'desc': 'A long blade that may one day become a sword.', 'tags': [('sword blade', 'crafting_material')]}]</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordBladeRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.example_recipes.SwordPommelRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">SwordPommelRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/example_recipes.html#SwordPommelRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordPommelRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.example_recipes._SwordSmithingBaseRecipe</span></code></p>
<p>The pommel is the button or ball etc the end of the sword hilt, holding
it together.</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordPommelRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'sword pommel'</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordPommelRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordPommelRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = ['hammer', 'anvil', 'furnace']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordPommelRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordPommelRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = ['crucible steel']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordPommelRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordPommelRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = [{'key': 'Sword pommel', 'desc': 'The pommel for a future sword.', 'tags': [('sword pommel', 'crafting_material')]}]</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordPommelRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.example_recipes.SwordGuardRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">SwordGuardRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/example_recipes.html#SwordGuardRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordGuardRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.example_recipes._SwordSmithingBaseRecipe</span></code></p>
<p>The guard stops the hand from accidentally sliding off the hilt onto the
swords blade and also protects the hand when parrying.</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordGuardRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'sword guard'</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordGuardRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordGuardRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = ['hammer', 'anvil', 'furnace']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordGuardRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordGuardRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = ['crucible steel']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordGuardRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordGuardRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = [{'key': 'Sword guard', 'desc': 'The cross-guard for a future sword.', 'tags': [('sword guard', 'crafting_material')]}]</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordGuardRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.example_recipes.RawhideRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">RawhideRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/example_recipes.html#RawhideRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.RawhideRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.contrib.crafting.crafting.html#evennia.contrib.crafting.crafting.CraftingRecipe" title="evennia.contrib.crafting.crafting.CraftingRecipe"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.crafting.CraftingRecipe</span></code></a></p>
<p>Rawhide is animal skin cleaned and stripped of hair.</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.RawhideRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'rawhide'</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.RawhideRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.RawhideRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = ['knife']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.RawhideRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.RawhideRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = ['fur']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.RawhideRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.RawhideRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = [{'key': 'Rawhide', 'desc': 'Animal skin, cleaned and with hair removed.', 'tags': [('rawhide', 'crafting_material')]}]</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.RawhideRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.example_recipes.OakBarkRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">OakBarkRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/example_recipes.html#OakBarkRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.OakBarkRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.contrib.crafting.crafting.html#evennia.contrib.crafting.crafting.CraftingRecipe" title="evennia.contrib.crafting.crafting.CraftingRecipe"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.crafting.CraftingRecipe</span></code></a></p>
<p>The actual thing needed for tanning leather is Tannin, but we skip
the step of refining tannin from the bark and use the bark as-is.</p>
<p>This produces two outputs - the bark and the cleaned wood.</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.OakBarkRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'oak bark'</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.OakBarkRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.OakBarkRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = ['knife']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.OakBarkRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.OakBarkRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = ['oak wood']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.OakBarkRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.OakBarkRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = [{'key': 'Oak bark', 'desc': 'Bark of oak, stripped from the core wood.', 'tags': [('oak bark', 'crafting_material')]}, {'key': 'Oak Wood (cleaned)', 'desc': 'Oakwood core, stripped of bark.', 'tags': [('cleaned oak wood', 'crafting_material')]}]</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.OakBarkRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.example_recipes.LeatherRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">LeatherRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/example_recipes.html#LeatherRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.LeatherRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.contrib.crafting.crafting.html#evennia.contrib.crafting.crafting.CraftingRecipe" title="evennia.contrib.crafting.crafting.CraftingRecipe"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.crafting.CraftingRecipe</span></code></a></p>
<p>Leather is produced by tanning rawhide in a process traditionally involving
the chemical Tannin. Here we abbreviate this process a bit. Maybe a
tanning rack tool should be required too …</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.LeatherRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'leather'</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.LeatherRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.LeatherRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = ['cauldron']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.LeatherRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.LeatherRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = ['rawhide', 'oak bark', 'water']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.LeatherRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.LeatherRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = [{'key': 'Piece of Leather', 'desc': 'A piece of leather.', 'tags': [('leather', 'crafting_material')]}]</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.LeatherRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.example_recipes.SwordHandleRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">SwordHandleRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/example_recipes.html#SwordHandleRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordHandleRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.contrib.crafting.crafting.html#evennia.contrib.crafting.crafting.CraftingRecipe" title="evennia.contrib.crafting.crafting.CraftingRecipe"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.crafting.CraftingRecipe</span></code></a></p>
<p>The handle is the part of the hilt between the guard and the pommel where
you hold the sword. It consists of wooden pieces around the steel tang. It
is wrapped in leather, but that will be added at the end.</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordHandleRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'sword handle'</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordHandleRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordHandleRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = ['knife']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordHandleRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordHandleRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = ['cleaned oak wood']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordHandleRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordHandleRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = [{'key': 'Sword handle', 'desc': &quot;Two pieces of wood to be be fitted onto a sword's tang as its handle.&quot;, 'tags': [('sword handle', 'crafting_material')]}]</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordHandleRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.example_recipes.SwordRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.example_recipes.</code><code class="sig-name descname">SwordRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crafter</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">inputs</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/example_recipes.html#SwordRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.crafting.example_recipes._SwordSmithingBaseRecipe</span></code></p>
<p>A finished sword consists of a Blade ending in a non-sharp part called the
Tang. The cross Guard is put over the tang against the edge of the blade.
The Handle is put over the tang to give something easier to hold. The
Pommel locks everything in place. The handle is wrapped in leather
strips for better grip.</p>
<p>This covers only a single sword type.</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordRecipe.name">
<code class="sig-name descname">name</code><em class="property"> = 'sword'</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordRecipe.name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordRecipe.tool_tags">
<code class="sig-name descname">tool_tags</code><em class="property"> = ['hammer', 'furnace', 'knife']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordRecipe.tool_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordRecipe.consumable_tags">
<code class="sig-name descname">consumable_tags</code><em class="property"> = ['sword blade', 'sword guard', 'sword pommel', 'sword handle', 'leather']</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordRecipe.consumable_tags" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordRecipe.output_prototypes">
<code class="sig-name descname">output_prototypes</code><em class="property"> = [{'key': 'Sword', 'desc': 'A bladed weapon.', 'tags': [('sword', 'crafting_material')]}]</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordRecipe.output_prototypes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.example_recipes.SwordRecipe.exact_consumable_order">
<code class="sig-name descname">exact_consumable_order</code><em class="property"> = True</em><a class="headerlink" href="#evennia.contrib.crafting.example_recipes.SwordRecipe.exact_consumable_order" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
</section>
@ -70,6 +407,14 @@
</div>
</div>
<script>$('#searchbox').show(0);</script>
<p><h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.contrib.crafting.example_recipes</a><ul>
<li><a class="reference internal" href="#sword-crafting-tree">Sword crafting tree</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.crafting.crafting.html"
title="previous chapter">evennia.contrib.crafting.crafting</a></p>
@ -99,7 +444,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -123,6 +467,7 @@
<li class="nav-item nav-item-1"><a href="../Contribs/Contrib-Overview.html" >Contrib modules</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.crafting.example_recipes</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.crafting</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -41,8 +42,17 @@
<span id="evennia-contrib-crafting"></span><h1>evennia.contrib.crafting<a class="headerlink" href="#module-evennia.contrib.crafting" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.crafting.crafting.html">evennia.contrib.crafting.crafting</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.crafting.example_recipes.html">evennia.contrib.crafting.example_recipes</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.crafting.crafting.html">evennia.contrib.crafting.crafting</a><ul>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#installation">Installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#crafting-in-game">Crafting in game</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#crafting-in-code">Crafting in code</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#recipes">Recipes</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.crafting.example_recipes.html">evennia.contrib.crafting.example_recipes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.crafting.example_recipes.html#sword-crafting-tree">Sword crafting tree</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.crafting.tests.html">evennia.contrib.crafting.tests</a></li>
</ul>
</div>
@ -91,7 +101,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -108,6 +117,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.crafting</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.crafting.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -37,8 +38,221 @@
<div class="bodywrapper">
<div class="body" role="main">
<section id="evennia-contrib-crafting-tests">
<h1>evennia.contrib.crafting.tests<a class="headerlink" href="#evennia-contrib-crafting-tests" title="Permalink to this headline"></a></h1>
<section id="module-evennia.contrib.crafting.tests">
<span id="evennia-contrib-crafting-tests"></span><h1>evennia.contrib.crafting.tests<a class="headerlink" href="#module-evennia.contrib.crafting.tests" title="Permalink to this headline"></a></h1>
<p>Unit tests for the crafting system contrib.</p>
<dl class="py class">
<dt id="evennia.contrib.crafting.tests.TestCraftUtils">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.tests.</code><code class="sig-name descname">TestCraftUtils</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftUtils"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftUtils" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.test.testcases.TestCase</span></code></p>
<p>Test helper utils for crafting.</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.tests.TestCraftUtils.maxDiff">
<code class="sig-name descname">maxDiff</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftUtils.maxDiff" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftUtils.test_load_recipes">
<code class="sig-name descname">test_load_recipes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftUtils.test_load_recipes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftUtils.test_load_recipes" title="Permalink to this definition"></a></dt>
<dd><p>This should only load the example module now</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipeBase">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.tests.</code><code class="sig-name descname">TestCraftingRecipeBase</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipeBase"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipeBase" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.test.testcases.TestCase</span></code></p>
<p>Test the parent recipe class.</p>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipeBase.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipeBase.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipeBase.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipeBase.test_msg">
<code class="sig-name descname">test_msg</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipeBase.test_msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipeBase.test_msg" title="Permalink to this definition"></a></dt>
<dd><p>Test messaging to crafter</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipeBase.test_pre_craft">
<code class="sig-name descname">test_pre_craft</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipeBase.test_pre_craft"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipeBase.test_pre_craft" title="Permalink to this definition"></a></dt>
<dd><p>Test validating hook</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipeBase.test_pre_craft_fail">
<code class="sig-name descname">test_pre_craft_fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipeBase.test_pre_craft_fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipeBase.test_pre_craft_fail" title="Permalink to this definition"></a></dt>
<dd><p>Should rase error if validation fails</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipeBase.test_craft_hook__succeed">
<code class="sig-name descname">test_craft_hook__succeed</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipeBase.test_craft_hook__succeed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipeBase.test_craft_hook__succeed" title="Permalink to this definition"></a></dt>
<dd><p>Test craft hook, the main access method.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipeBase.test_craft_hook__fail">
<code class="sig-name descname">test_craft_hook__fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipeBase.test_craft_hook__fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipeBase.test_craft_hook__fail" title="Permalink to this definition"></a></dt>
<dd><p>Test failing the call</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.tests.</code><code class="sig-name descname">TestCraftingRecipe</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.test.testcases.TestCase</span></code></p>
<p>Test the CraftingRecipe class with one recipe</p>
<dl class="py attribute">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.maxDiff">
<code class="sig-name descname">maxDiff</code><em class="property"> = None</em><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.maxDiff" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.tearDown">
<code class="sig-name descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.tearDown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.tearDown" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_error_format">
<code class="sig-name descname">test_error_format</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_error_format"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_error_format" title="Permalink to this definition"></a></dt>
<dd><p>Test the automatic error formatter</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft__success">
<code class="sig-name descname">test_craft__success</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft__success"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft__success" title="Permalink to this definition"></a></dt>
<dd><p>Test to create a result from the recipe</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_seed__success">
<code class="sig-name descname">test_seed__success</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_seed__success"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_seed__success" title="Permalink to this definition"></a></dt>
<dd><p>Test seed helper classmethod</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_missing_tool__fail">
<code class="sig-name descname">test_craft_missing_tool__fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft_missing_tool__fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_missing_tool__fail" title="Permalink to this definition"></a></dt>
<dd><p>Fail craft by missing tool2</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_missing_cons__fail">
<code class="sig-name descname">test_craft_missing_cons__fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft_missing_cons__fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_missing_cons__fail" title="Permalink to this definition"></a></dt>
<dd><p>Fail craft by missing cons3</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_missing_cons__always_consume__fail">
<code class="sig-name descname">test_craft_missing_cons__always_consume__fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft_missing_cons__always_consume__fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_missing_cons__always_consume__fail" title="Permalink to this definition"></a></dt>
<dd><p>Fail craft by missing cons3, with always-consume flag</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_wrong_tool__fail">
<code class="sig-name descname">test_craft_wrong_tool__fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft_wrong_tool__fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_wrong_tool__fail" title="Permalink to this definition"></a></dt>
<dd><p>Fail craft by including a wrong tool</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_tool_excess__fail">
<code class="sig-name descname">test_craft_tool_excess__fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft_tool_excess__fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_tool_excess__fail" title="Permalink to this definition"></a></dt>
<dd><p>Fail by too many consumables</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_cons_excess__fail">
<code class="sig-name descname">test_craft_cons_excess__fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft_cons_excess__fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_cons_excess__fail" title="Permalink to this definition"></a></dt>
<dd><p>Fail by too many consumables</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_tool_excess__sucess">
<code class="sig-name descname">test_craft_tool_excess__sucess</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft_tool_excess__sucess"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_tool_excess__sucess" title="Permalink to this definition"></a></dt>
<dd><p>Allow too many consumables</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_cons_excess__sucess">
<code class="sig-name descname">test_craft_cons_excess__sucess</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft_cons_excess__sucess"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_cons_excess__sucess" title="Permalink to this definition"></a></dt>
<dd><p>Allow too many consumables</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_tool_order__fail">
<code class="sig-name descname">test_craft_tool_order__fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft_tool_order__fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_tool_order__fail" title="Permalink to this definition"></a></dt>
<dd><p>Strict tool-order recipe fail</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_cons_order__fail">
<code class="sig-name descname">test_craft_cons_order__fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftingRecipe.test_craft_cons_order__fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftingRecipe.test_craft_cons_order__fail" title="Permalink to this definition"></a></dt>
<dd><p>Strict tool-order recipe fail</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.tests.TestCraftSword">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.tests.</code><code class="sig-name descname">TestCraftSword</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftSword"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftSword" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.test.testcases.TestCase</span></code></p>
<p>Test the <strong>craft</strong> function by crafting the example sword.</p>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftSword.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftSword.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftSword.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftSword.test_craft_sword">
<code class="sig-name descname">test_craft_sword</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mockrandom</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftSword.test_craft_sword"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftSword.test_craft_sword" title="Permalink to this definition"></a></dt>
<dd><p>Craft example sword. For the test, every crafting works.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.crafting.tests.TestCraftCommand">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.crafting.tests.</code><code class="sig-name descname">TestCraftCommand</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftCommand"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftCommand" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.tests.html#evennia.commands.default.tests.CommandTest" title="evennia.commands.default.tests.CommandTest"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.tests.CommandTest</span></code></a></p>
<p>Test the crafting command</p>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftCommand.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftCommand.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftCommand.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Sets up testing environment</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftCommand.test_craft__success">
<code class="sig-name descname">test_craft__success</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftCommand.test_craft__success"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftCommand.test_craft__success" title="Permalink to this definition"></a></dt>
<dd><p>Successfully craft using command</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftCommand.test_craft__notools__failure">
<code class="sig-name descname">test_craft__notools__failure</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftCommand.test_craft__notools__failure"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftCommand.test_craft__notools__failure" title="Permalink to this definition"></a></dt>
<dd><p>Craft fail no tools</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.crafting.tests.TestCraftCommand.test_craft__nocons__failure">
<code class="sig-name descname">test_craft__nocons__failure</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/crafting/tests.html#TestCraftCommand.test_craft__nocons__failure"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.crafting.tests.TestCraftCommand.test_craft__nocons__failure" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -84,7 +298,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +314,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.crafting.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.custom_gametime</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -313,7 +314,6 @@ The time is given in units as keyword arguments.</p>
<li><a href="../../0.9.5/api/evennia.contrib.custom_gametime.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -330,6 +330,7 @@ The time is given in units as keyword arguments.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.custom_gametime</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.dice</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -149,7 +150,7 @@ everyone but the person rolling.</p>
<dl class="py attribute">
<dt id="evennia.contrib.dice.CmdDice.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['&#64;dice', 'roll']</em><a class="headerlink" href="#evennia.contrib.dice.CmdDice.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['roll', '&#64;dice']</em><a class="headerlink" href="#evennia.contrib.dice.CmdDice.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -173,6 +174,11 @@ everyone but the person rolling.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.dice.CmdDice.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.dice.CmdDice.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'roll &#64;dice', 'category': 'general', 'key': 'dice', 'tags': '', 'text': &quot;\n roll dice\n\n Usage:\n dice[/switch] &lt;nr&gt;d&lt;sides&gt; [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 &lt; 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 (&lt;,&gt;,&lt;=,&gt;=,==,!=). So e.g. 2d6 + 3 &gt; 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 &quot;}</em><a class="headerlink" href="#evennia.contrib.dice.CmdDice.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -239,7 +245,6 @@ Add with &#64;py self.cmdset.add(“contrib.dice.DiceCmdSet”)</p>
<li><a href="../../0.9.5/api/evennia.contrib.dice.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -256,6 +261,7 @@ Add with &#64;py self.cmdset.add(“contrib.dice.DiceCmdSet”)</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.dice</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.email_login</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -74,7 +75,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.</p>
<dl class="py attribute">
<dt id="evennia.contrib.email_login.CmdUnconnectedConnect.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['conn', 'co', 'con']</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedConnect.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['con', 'co', 'conn']</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedConnect.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -102,6 +103,11 @@ there is no object yet before the account has logged in)</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedConnect.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.email_login.CmdUnconnectedConnect.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'con co conn', 'category': 'general', 'key': 'connect', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect &lt;email&gt; &lt;password&gt;\n\n Use the create command to first create an account before logging in.\n '}</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedConnect.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -121,7 +127,7 @@ there is no object yet before the account has logged in)</p>
<dl class="py attribute">
<dt id="evennia.contrib.email_login.CmdUnconnectedCreate.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['cr', 'cre']</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedCreate.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['cre', 'cr']</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedCreate.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -155,6 +161,11 @@ name enclosed in quotes:</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedCreate.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.email_login.CmdUnconnectedCreate.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create &quot;accountname&quot; &lt;email&gt; &lt;password&gt;\n\n This creates a new account account.\n\n '}</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedCreate.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -171,7 +182,7 @@ version is a bit more complicated.</p>
<dl class="py attribute">
<dt id="evennia.contrib.email_login.CmdUnconnectedQuit.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['qu', 'q']</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedQuit.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['q', 'qu']</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedQuit.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -195,6 +206,11 @@ version is a bit more complicated.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedQuit.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.email_login.CmdUnconnectedQuit.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedQuit.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -235,6 +251,11 @@ All it does is display the connect screen.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedLook.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.email_login.CmdUnconnectedLook.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedLook.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -250,7 +271,7 @@ for simplicity. It shows a pane of info.</p>
<dl class="py attribute">
<dt id="evennia.contrib.email_login.CmdUnconnectedHelp.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['h', '?']</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedHelp.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['?', 'h']</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedHelp.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -274,6 +295,11 @@ for simplicity. It shows a pane of info.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.email_login.CmdUnconnectedHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.email_login.CmdUnconnectedHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -321,7 +347,6 @@ for simplicity. It shows a pane of info.</p>
<li><a href="../../0.9.5/api/evennia.contrib.email_login.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -338,6 +363,7 @@ for simplicity. It shows a pane of info.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.email_login</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.commands</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -123,6 +124,11 @@ the operation will be general or on the room.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdEvscapeRoom.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdEvscapeRoom.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'evscaperoom', 'key': 'command', 'tags': '', 'text': &quot;\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 [&lt;obj1&gt;|&lt;arg1&gt;] [&lt;prep&gt; &lt;obj2&gt;|&lt;arg2&gt;]\n\n &quot;}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdEvscapeRoom.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -142,7 +148,7 @@ the operation will be general or on the room.</p>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdGiveUp.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['abort', 'chicken out', 'q', 'quit']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdGiveUp.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['abort', 'q', 'quit', 'chicken out']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdGiveUp.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
@ -164,6 +170,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdGiveUp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdGiveUp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'abort q quit chicken out', '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 '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdGiveUp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -182,7 +193,7 @@ set in self.parse())</p>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdLook.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdLook.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdLook.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -214,6 +225,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdLook.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdLook.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdLook.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -267,6 +283,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdWho.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdWho.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdWho.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -287,7 +308,7 @@ shout</p>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdSpeak.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['whisper', 'shout', ';']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdSpeak.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['shout', ';', 'whisper']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdSpeak.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -314,6 +335,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdSpeak.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdSpeak.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'shout ; whisper', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say &lt;text&gt;\n whisper\n shout\n\n '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdSpeak.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -339,7 +365,7 @@ emote /me points to /box and /lever.</p>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdEmote.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = [':', 'pose']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdEmote.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['pose', ':']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdEmote.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -376,6 +402,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdEmote.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdEmote.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 &quot;...&quot; to enact speech.\n\n Usage:\n emote &lt;emote&gt;\n :&lt;emote\n\n Example:\n emote /me smiles at /peter\n emote /me points to /box and /lever.\n\n '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdEmote.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -396,7 +427,7 @@ looks and what actions is available.</p>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdFocus.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['ex', 'examine', 'unfocus', 'e']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdFocus.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['unfocus', 'e', 'ex', 'examine']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdFocus.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -423,6 +454,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdFocus.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdFocus.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'unfocus e ex examine', 'category': 'evscaperoom', 'key': 'focus', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus &lt;obj&gt;\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 '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdFocus.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -463,6 +499,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdOptions.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdOptions.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'option', 'category': 'evscaperoom', 'key': 'options', 'tags': '', 'text': '\n Start option menu\n\n Usage:\n options\n\n '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdOptions.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -477,7 +518,7 @@ set in self.parse())</p>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdGet.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['inv', 'i', 'give', 'inventory']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdGet.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['inv', 'inventory', 'i', 'give']</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdGet.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
@ -499,6 +540,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdGet.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdGet.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'inv inventory i give', 'category': 'evscaperoom', 'key': 'get', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdGet.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -538,6 +584,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdRerouter.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdRerouter.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;open &#64;dig', 'category': 'general', 'key': 'open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n &lt;action&gt; [arg]\n\n '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdRerouter.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -602,6 +653,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdFocusInteraction.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdFocusInteraction.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'evscaperoom', 'key': '__nomatch_command', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n &lt;action&gt; [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_&lt;action&gt;(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 '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdFocusInteraction.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -638,6 +694,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdStand.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdStand.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'evscaperoom', 'key': 'stand', 'tags': '', 'text': '\n Stand up from whatever position you had.\n\n '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdStand.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -678,6 +739,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '?', 'category': 'evscaperoom', 'key': 'help', 'tags': '', 'text': '\n Get help.\n\n Usage:\n help &lt;topic&gt; or &lt;command&gt;\n\n '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -734,6 +800,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(Admin)'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdCreateObj.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdCreateObj.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdCreateObj.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -789,6 +860,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(Admin)'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdSetFlag.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdSetFlag.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'setflag', 'category': 'evscaperoom', 'key': 'flag', 'tags': '', 'text': '\n Assign a flag to an object. Admin use only\n\n Usage:\n flag &lt;obj&gt; with &lt;flagname&gt;\n\n '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdSetFlag.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -845,6 +921,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(Admin)'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdJumpState.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdJumpState.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'evscaperoom', 'key': 'jumpstate', 'tags': '', 'text': '\n Jump to a given state.\n\n Args:\n jumpstate &lt;statename&gt;\n\n '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdJumpState.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -881,6 +962,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdEvscapeRoomStart.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.evscaperoom.commands.CmdEvscapeRoomStart.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'evscaperoom', 'key': 'evscaperoom', 'tags': '', 'text': '\n Go to the Evscaperoom start menu\n\n '}</em><a class="headerlink" href="#evennia.contrib.evscaperoom.commands.CmdEvscapeRoomStart.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -952,7 +1038,6 @@ self.add().</p>
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -969,6 +1054,7 @@ self.add().</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.commands</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -96,7 +97,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -113,6 +113,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.menu</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -194,7 +195,6 @@ option related to this node.</p></li>
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -211,6 +211,7 @@ option related to this node.</p></li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.menu</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.objects</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -1814,7 +1815,6 @@ inject the list of callsigns.</p>
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -1831,6 +1831,7 @@ inject the list of callsigns.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.objects</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.room</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -273,7 +274,6 @@ contents of the object by default.</p>
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -290,6 +290,7 @@ contents of the object by default.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.room</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.scripts</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -84,7 +85,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +101,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.scripts</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.state</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -270,7 +271,6 @@ happens just before room.character_cleanup()</p>
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -287,6 +287,7 @@ happens just before room.character_cleanup()</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.state</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -210,7 +211,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -227,6 +227,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.utils</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -202,7 +203,6 @@ surrounded by borders.</p>
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -219,6 +219,7 @@ surrounded by borders.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.evscaperoom.utils</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.extended_room</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -276,7 +277,7 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a>&lt;account&g
<dl class="py attribute">
<dt id="evennia.contrib.extended_room.CmdExtendedRoomLook.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.contrib.extended_room.CmdExtendedRoomLook.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.contrib.extended_room.CmdExtendedRoomLook.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -294,6 +295,11 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a>&lt;account&g
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.extended_room.CmdExtendedRoomLook.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.extended_room.CmdExtendedRoomLook.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look &lt;obj&gt;\n look &lt;room detail&gt;\n look *&lt;account&gt;\n\n Observes your location, details at your location or objects in your vicinity.\n '}</em><a class="headerlink" href="#evennia.contrib.extended_room.CmdExtendedRoomLook.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -357,6 +363,11 @@ version of the <strong>desc</strong> command.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(desc) or perm(Builder)'</em><a class="headerlink" href="#evennia.contrib.extended_room.CmdExtendedRoomDesc.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.extended_room.CmdExtendedRoomDesc.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'describe', 'category': 'building', 'key': 'desc', 'tags': '', 'text': '\n `desc` - describe an object or room.\n\n Usage:\n desc[/switch] [&lt;obj&gt; =] &lt;description&gt;\n\n Switches for `desc`:\n spring - set description for &lt;season&gt; in current room.\n summer\n autumn\n winter\n\n Sets the &quot;desc&quot; 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 &lt;night&gt;In the darkness, the forest looks foreboding.&lt;/night&gt;.\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 '}</em><a class="headerlink" href="#evennia.contrib.extended_room.CmdExtendedRoomDesc.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -415,6 +426,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(Builder)'</em><a class="headerlink" href="#evennia.contrib.extended_room.CmdExtendedRoomDetail.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.extended_room.CmdExtendedRoomDetail.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': '&#64;detail', 'tags': '', 'text': '\n sets a detail on a room\n\n Usage:\n &#64;detail[/del] &lt;key&gt; [= &lt;description&gt;]\n &#64;detail &lt;key&gt;;&lt;alias&gt;;... = description\n\n Example:\n &#64;detail\n &#64;detail walls = The walls are covered in ...\n &#64;detail castle;ruin;tower = The distant ruin ...\n &#64;detail/del wall\n &#64;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 &#64;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 &#64;detail/del switch.\n\n '}</em><a class="headerlink" href="#evennia.contrib.extended_room.CmdExtendedRoomDetail.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -458,6 +474,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.extended_room.CmdExtendedRoomGameTime.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.extended_room.CmdExtendedRoomGameTime.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.extended_room.CmdExtendedRoomGameTime.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -525,7 +546,6 @@ self.add().</p>
<li><a href="../../0.9.5/api/evennia.contrib.extended_room.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -542,6 +562,7 @@ self.add().</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.extended_room</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.fieldfill</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -364,6 +365,11 @@ send</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.fieldfill.CmdTestMenu.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.fieldfill.CmdTestMenu.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'testmenu', 'tags': '', 'text': &quot;\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 &lt;field&gt; = &lt;new value&gt;\n clear &lt;field&gt;\n help\n look\n quit\n send\n &quot;}</em><a class="headerlink" href="#evennia.contrib.fieldfill.CmdTestMenu.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py function">
@ -439,7 +445,6 @@ send</p>
<li><a href="../../0.9.5/api/evennia.contrib.fieldfill.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -456,6 +461,7 @@ send</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.fieldfill</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.gendersub</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -110,6 +111,11 @@ default cmdset before it becomes available.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();call:all()'</em><a class="headerlink" href="#evennia.contrib.gendersub.SetGender.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.gendersub.SetGender.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;sex', 'category': 'general', 'key': '&#64;gender', 'tags': '', 'text': '\n Sets gender on yourself\n\n Usage:\n &#64;gender male||female||neutral||ambiguous\n\n '}</em><a class="headerlink" href="#evennia.contrib.gendersub.SetGender.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -218,7 +224,6 @@ All extra kwargs will be passed on to the protocol.</p>
<li><a href="../../0.9.5/api/evennia.contrib.gendersub.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -235,6 +240,7 @@ All extra kwargs will be passed on to the protocol.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.gendersub</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.health_bar</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -141,7 +142,6 @@ readers will be unable to read the graphical aspect of the bar.</p>
<li><a href="../../0.9.5/api/evennia.contrib.health_bar.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -158,6 +158,7 @@ readers will be unable to read the graphical aspect of the bar.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.health_bar</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -68,7 +69,24 @@ useful but are deemed too game-specific to go into the core library.</p>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.slow_exit.html">evennia.contrib.slow_exit</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.talking_npc.html">evennia.contrib.talking_npc</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.test_traits.html">evennia.contrib.test_traits</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.traits.html">evennia.contrib.traits</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.traits.html">evennia.contrib.traits</a><ul>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.traits.html#adding-traits-to-a-typeclass">Adding Traits to a typeclass</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.traits.html#using-traits">Using traits</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.traits.html#trait-types">Trait types</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.traits.html#static-trait">Static trait</a><ul>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.traits.html#counter">Counter</a><ul>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.traits.html#descs">.descs</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.traits.html#rate">.rate</a></li>
<li class="toctree-l4"><a class="reference internal" href="evennia.contrib.traits.html#percent">.percent()</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.traits.html#gauge">Gauge</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.traits.html#trait">Trait</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.traits.html#expanding-with-your-own-traits">Expanding with your own Traits</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tree_select.html">evennia.contrib.tree_select</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.unixcommand.html">evennia.contrib.unixcommand</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.wilderness.html">evennia.contrib.wilderness</a></li>
@ -82,8 +100,17 @@ useful but are deemed too game-specific to go into the core library.</p>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.crafting.html">evennia.contrib.crafting</a><ul>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.crafting.crafting.html">evennia.contrib.crafting.crafting</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.crafting.example_recipes.html">evennia.contrib.crafting.example_recipes</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.crafting.crafting.html">evennia.contrib.crafting.crafting</a><ul>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#installation">Installation</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#crafting-in-game">Crafting in game</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#crafting-in-code">Crafting in code</a></li>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.crafting.crafting.html#recipes">Recipes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.crafting.example_recipes.html">evennia.contrib.crafting.example_recipes</a><ul>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.crafting.example_recipes.html#sword-crafting-tree">Sword crafting tree</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.crafting.tests.html">evennia.contrib.crafting.tests</a></li>
</ul>
</li>
@ -129,7 +156,10 @@ useful but are deemed too game-specific to go into the core library.</p>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorial_examples.bodyfunctions.html">evennia.contrib.tutorial_examples.bodyfunctions</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorial_examples.example_batch_code.html">evennia.contrib.tutorial_examples.example_batch_code</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorial_examples.mirror.html">evennia.contrib.tutorial_examples.mirror</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorial_examples.red_button.html">evennia.contrib.tutorial_examples.red_button</a></li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorial_examples.red_button.html">evennia.contrib.tutorial_examples.red_button</a><ul>
<li class="toctree-l3"><a class="reference internal" href="evennia.contrib.tutorial_examples.red_button.html#technical">Technical</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorial_examples.tests.html">evennia.contrib.tutorial_examples.tests</a></li>
</ul>
</li>
@ -187,7 +217,6 @@ useful but are deemed too game-specific to go into the core library.</p>
<li><a href="../../0.9.5/api/evennia.contrib.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -204,6 +233,7 @@ useful but are deemed too game-specific to go into the core library.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.callbackhandler</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -319,7 +320,6 @@ the expected fields for a callback (code, author, valid…).</p>
<li><a href="../../0.9.5/api/evennia.contrib.ingame_python.callbackhandler.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -336,6 +336,7 @@ the expected fields for a callback (code, author, valid…).</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.callbackhandler</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.commands</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -52,7 +53,7 @@
<dl class="py attribute">
<dt id="evennia.contrib.ingame_python.commands.CmdCallback.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['&#64;calls', '&#64;callback', '&#64;callbacks']</em><a class="headerlink" href="#evennia.contrib.ingame_python.commands.CmdCallback.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['&#64;calls', '&#64;callbacks', '&#64;callback']</em><a class="headerlink" href="#evennia.contrib.ingame_python.commands.CmdCallback.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -131,6 +132,11 @@ on user permission.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(developer)'</em><a class="headerlink" href="#evennia.contrib.ingame_python.commands.CmdCallback.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.ingame_python.commands.CmdCallback.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;calls &#64;callbacks &#64;callback', 'category': 'building', 'key': '&#64;call', 'tags': '', 'text': '\n Command to edit callbacks.\n '}</em><a class="headerlink" href="#evennia.contrib.ingame_python.commands.CmdCallback.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -178,7 +184,6 @@ on user permission.</p>
<li><a href="../../0.9.5/api/evennia.contrib.ingame_python.commands.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -195,6 +200,7 @@ on user permission.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.commands</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.eventfuncs</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -151,7 +152,6 @@ to be called from inside another event.</p>
<li><a href="../../0.9.5/api/evennia.contrib.ingame_python.eventfuncs.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -168,6 +168,7 @@ to be called from inside another event.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.eventfuncs</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -95,7 +96,6 @@
<li><a href="../../0.9.5/api/evennia.contrib.ingame_python.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -112,6 +112,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.scripts</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -56,8 +57,8 @@ editing and deleting these events and callbacks.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.ingame_python.scripts.EventHandler.at_start">
<code class="sig-name descname">at_start</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/ingame_python/scripts.html#EventHandler.at_start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.ingame_python.scripts.EventHandler.at_start" title="Permalink to this definition"></a></dt>
<dt id="evennia.contrib.ingame_python.scripts.EventHandler.at_server_start">
<code class="sig-name descname">at_server_start</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/ingame_python/scripts.html#EventHandler.at_server_start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.ingame_python.scripts.EventHandler.at_server_start" title="Permalink to this definition"></a></dt>
<dd><p>Set up the event system when starting.</p>
<p>Note that this hook is called every time the server restarts
(including when its reloaded). This hook performs the following
@ -440,7 +441,6 @@ restart only twice.</p>
<li><a href="../../0.9.5/api/evennia.contrib.ingame_python.scripts.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -457,6 +457,7 @@ restart only twice.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.scripts</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -226,7 +227,6 @@
<li><a href="../../0.9.5/api/evennia.contrib.ingame_python.tests.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -243,6 +243,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.typeclasses</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -84,7 +85,6 @@
<li><a href="../../0.9.5/api/evennia.contrib.ingame_python.typeclasses.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +101,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.typeclasses</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.utils</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -204,7 +205,6 @@ either “yes” or “okay” (maybe say I dont like it, but okay).</p
<li><a href="../../0.9.5/api/evennia.contrib.ingame_python.utils.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -221,6 +221,7 @@ either “yes” or “okay” (maybe say I dont like it, but okay).</p
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.ingame_python.utils</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.mail</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -218,6 +219,11 @@ the newly created mails.</p></li>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.mail.CmdMail.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.mail.CmdMail.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'mail', 'category': 'general', 'key': '&#64;mail', 'tags': '', 'text': '\n Communicate with others by sending mail.\n\n Usage:\n &#64;mail - Displays all the mail an account has in their mailbox\n &#64;mail &lt;#&gt; - Displays a specific message\n &#64;mail &lt;accounts&gt;=&lt;subject&gt;/&lt;message&gt;\n - Sends a message to the comma separated list of accounts.\n &#64;mail/delete &lt;#&gt; - Deletes a specific message\n &#64;mail/forward &lt;account list&gt;=&lt;#&gt;[/&lt;Message&gt;]\n - Forwards an existing message to the specified list of accounts,\n original message is delivered with optional Message prepended.\n &#64;mail/reply &lt;#&gt;=&lt;message&gt;\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 &#64;mail 2\n &#64;mail Griatch=New mail/Hey man, I am sending you a message!\n &#64;mail/delete 6\n &#64;mail/forward feend78 Griatch=4/You guys should read this.\n &#64;mail/reply 9=Thanks for the info!\n\n '}</em><a class="headerlink" href="#evennia.contrib.mail.CmdMail.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -286,6 +292,11 @@ reply - Replies to a received message, appending the original message to the b
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.mail.CmdMailCharacter.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.mail.CmdMailCharacter.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'mail', 'category': 'general', 'key': '&#64;mail', 'tags': '', 'text': '\n Communicate with others by sending mail.\n\n Usage:\n &#64;mail - Displays all the mail an account has in their mailbox\n &#64;mail &lt;#&gt; - Displays a specific message\n &#64;mail &lt;accounts&gt;=&lt;subject&gt;/&lt;message&gt;\n - Sends a message to the comma separated list of accounts.\n &#64;mail/delete &lt;#&gt; - Deletes a specific message\n &#64;mail/forward &lt;account list&gt;=&lt;#&gt;[/&lt;Message&gt;]\n - Forwards an existing message to the specified list of accounts,\n original message is delivered with optional Message prepended.\n &#64;mail/reply &lt;#&gt;=&lt;message&gt;\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 &#64;mail 2\n &#64;mail Griatch=New mail/Hey man, I am sending you a message!\n &#64;mail/delete 6\n &#64;mail/forward feend78 Griatch=4/You guys should read this.\n &#64;mail/reply 9=Thanks for the info!\n\n '}</em><a class="headerlink" href="#evennia.contrib.mail.CmdMailCharacter.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -333,7 +344,6 @@ reply - Replies to a received message, appending the original message to the b
<li><a href="../../0.9.5/api/evennia.contrib.mail.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -350,6 +360,7 @@ reply - Replies to a received message, appending the original message to the b
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.mail</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.mapbuilder</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -84,7 +85,6 @@
<li><a href="../../0.9.5/api/evennia.contrib.mapbuilder.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +101,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.mapbuilder</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.menu_login</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -84,7 +85,6 @@
<li><a href="../../0.9.5/api/evennia.contrib.menu_login.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +101,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.menu_login</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.multidescer</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -116,6 +117,11 @@ description in use and <strong>db.multidesc</strong> to store all descriptions.<
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.multidescer.CmdMultiDesc.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.multidescer.CmdMultiDesc.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'desc', 'category': 'general', 'key': '+desc', 'tags': '', 'text': '\n Manage multiple descriptions\n\n Usage:\n +desc [key] - show current desc desc with &lt;key&gt;\n +desc &lt;key&gt; = &lt;text&gt; - add/replace desc with &lt;key&gt;\n +desc/list - list descriptions (abbreviated)\n +desc/list/full - list descriptions (full texts)\n +desc/edit &lt;key&gt; - add/edit desc &lt;key&gt; in line editor\n +desc/del &lt;key&gt; - delete desc &lt;key&gt;\n +desc/swap &lt;key1&gt;-&lt;key2&gt; - swap positions of &lt;key1&gt; and &lt;key2&gt; in list\n +desc/set &lt;key&gt; [+key+...] - set desc as default or combine multiple descs\n\n Notes:\n When combining multiple descs with +desc/set &lt;key&gt; + &lt;key2&gt; + ...,\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 '}</em><a class="headerlink" href="#evennia.contrib.multidescer.CmdMultiDesc.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -163,7 +169,6 @@ description in use and <strong>db.multidesc</strong> to store all descriptions.<
<li><a href="../../0.9.5/api/evennia.contrib.multidescer.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -180,6 +185,7 @@ description in use and <strong>db.multidesc</strong> to store all descriptions.<
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.multidescer</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.puzzles</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -206,6 +207,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(puzzle) or perm(Builder)'</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdCreatePuzzleRecipe.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.puzzles.CmdCreatePuzzleRecipe.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;puzzlerecipe', 'category': 'puzzles', 'key': '&#64;puzzle', 'tags': '', 'text': &quot;\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 &#64;puzzle name,&lt;part1[,part2,...&gt;] = &lt;result1[,result2,...]&gt;\n\n Example:\n create/drop balloon\n create/drop glass of water\n create/drop water balloon\n &#64;puzzle waterballon,balloon,glass of water = water balloon\n &#64;del ballon, glass of water, water balloon\n &#64;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 `&#64;armpuzzle` command later.\n\n &quot;}</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdCreatePuzzleRecipe.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -269,6 +275,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(puzzleedit) or perm(Builder)'</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdEditPuzzle.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.puzzles.CmdEditPuzzle.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'puzzles', 'key': '&#64;puzzleedit', 'tags': '', 'text': &quot;\n Edits puzzle properties\n\n Usage:\n &#64;puzzleedit[/delete] &lt;#dbref&gt;\n &#64;puzzleedit &lt;#dbref&gt;/use_success_message = &lt;Custom message&gt;\n &#64;puzzleedit &lt;#dbref&gt;/use_success_location_message = &lt;Custom message from {caller} producing {result_names}&gt;\n &#64;puzzleedit &lt;#dbref&gt;/mask = attr1[,attr2,...]&gt;\n &#64;puzzleedit[/addpart] &lt;#dbref&gt; = &lt;obj[,obj2,...]&gt;\n &#64;puzzleedit[/delpart] &lt;#dbref&gt; = &lt;obj[,obj2,...]&gt;\n &#64;puzzleedit[/addresult] &lt;#dbref&gt; = &lt;obj[,obj2,...]&gt;\n &#64;puzzleedit[/delresult] &lt;#dbref&gt; = &lt;obj[,obj2,...]&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdEditPuzzle.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -316,6 +327,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(armpuzzle) or perm(Builder)'</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdArmPuzzle.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.puzzles.CmdArmPuzzle.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'puzzles', 'key': '&#64;armpuzzle', 'tags': '', 'text': '\n Arms a puzzle by spawning all its parts.\n\n Usage:\n &#64;armpuzzle &lt;puzzle #dbref&gt;\n\n Notes:\n Create puzzles with `&#64;puzzle`; get list of\n defined puzzles using `&#64;lspuzzlerecipes`.\n\n '}</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdArmPuzzle.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -364,6 +380,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:pperm(use) or pperm(Player)'</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdUsePuzzleParts.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.puzzles.CmdUsePuzzleParts.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 &lt;obj1&gt; [,obj2,...]\n '}</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdUsePuzzleParts.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -408,6 +429,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(lspuzzlerecipes) or perm(Builder)'</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdListPuzzleRecipes.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.puzzles.CmdListPuzzleRecipes.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'puzzles', 'key': '&#64;lspuzzlerecipes', 'tags': '', 'text': '\n Searches for all puzzle recipes\n\n Usage:\n &#64;lspuzzlerecipes\n '}</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdListPuzzleRecipes.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -452,6 +478,11 @@ to all the variables defined therein.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(lsarmedpuzzles) or perm(Builder)'</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdListArmedPuzzles.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.puzzles.CmdListArmedPuzzles.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'puzzles', 'key': '&#64;lsarmedpuzzles', 'tags': '', 'text': '\n Searches for all armed puzzles\n\n Usage:\n &#64;lsarmedpuzzles\n '}</em><a class="headerlink" href="#evennia.contrib.puzzles.CmdListArmedPuzzles.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -519,7 +550,6 @@ self.add().</p>
<li><a href="../../0.9.5/api/evennia.contrib.puzzles.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -536,6 +566,7 @@ self.add().</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.puzzles</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.random_string_generator</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -299,7 +300,6 @@ calling the <strong>get</strong> method.</p>
<li><a href="../../0.9.5/api/evennia.contrib.random_string_generator.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -316,6 +316,7 @@ calling the <strong>get</strong> method.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.random_string_generator</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.rplanguage</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -98,18 +99,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.</p>
<p>Below is an example of “elvish”, using “rounder” vowels and sounds:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">phonemes</span> <span class="o">=</span> <span class="s2">&quot;oi oh ee ae aa eh ah ao aw ay er ey ow ia ih iy &quot;</span> <span class="s2">&quot;oy ua uh uw y p b t d f v t dh s z sh zh ch jh k &quot;</span> <span class="s2">&quot;ng g m n l r w&quot;</span><span class="p">,</span>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># vowel/consonant grammar possibilities</span>
<span class="n">grammar</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc &quot;</span>
<span class="s2">&quot;vcvvccvvc cvcvvcvvcc vcvcvvccvcvv&quot;</span><span class="p">)</span>
<span class="c1"># all not in this group is considered a consonant</span>
<span class="n">vowels</span> <span class="o">=</span> <span class="s2">&quot;eaoiuy&quot;</span>
<span class="n">grammar</span> <span class="o">=</span> <span class="s2">&quot;v vv vvc vcc vvcc cvvc vccv vvccv vcvccv vcvcvcc vvccvvcc &quot;</span> <span class="s2">&quot;vcvvccvvc cvcvvcvvcc vcvcvvccvcvv&quot;</span><span class="p">,</span>
<span class="c1"># you need a representative of all of the minimal grammars here, so if a</span>
<span class="c1"># grammar v exists, there must be atleast one phoneme available with only</span>
<span class="c1"># one vowel in it</span>
<span class="n">phonemes</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;oi oh ee ae aa eh ah ao aw ay er ey ow ia ih iy &quot;</span>
<span class="s2">&quot;oy ua uh uw y p b t d f v t dh s z sh zh ch jh k &quot;</span>
<span class="s2">&quot;ng g m n l r w&quot;</span><span class="p">)</span>
<span class="c1"># how much the translation varies in length compared to the original. 0 is</span>
<span class="c1"># smallest, higher values give ever bigger randomness (including removing</span>
<span class="c1"># short words entirely)</span>
<span class="n">word_length_variance</span> <span class="o">=</span> <span class="mi">1</span>
<span class="c1"># if a proper noun (word starting with capitalized letter) should be</span>
<span class="c1"># translated or not. If not (default) it means e.g. names will remain</span>
<span class="c1"># unchanged across languages.</span>
<span class="n">noun_translate</span> <span class="o">=</span> <span class="kc">False</span>
<span class="c1"># all proper nouns (words starting with a capital letter not at the beginning</span>
<span class="c1"># of a sentence) can have either a postfix or -prefix added at all times</span>
<span class="n">noun_postfix</span> <span class="o">=</span> <span class="s2">&quot;&#39;la&quot;</span>
<span class="c1"># words in dict will always be translated this way. The &#39;auto_translations&#39;</span>
<span class="c1"># is instead a list or filename to file with words to use to help build a</span>
<span class="c1"># bigger dictionary by creating random translations of each word in the</span>
<span class="c1"># list *once* and saving the result for subsequent use.</span>
<span class="n">manual_translations</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;the&quot;</span><span class="p">:</span><span class="s2">&quot;y&#39;e&quot;</span><span class="p">,</span> <span class="s2">&quot;we&quot;</span><span class="p">:</span><span class="s2">&quot;uyi&quot;</span><span class="p">,</span> <span class="s2">&quot;she&quot;</span><span class="p">:</span><span class="s2">&quot;semi&quot;</span><span class="p">,</span> <span class="s2">&quot;he&quot;</span><span class="p">:</span><span class="s2">&quot;emi&quot;</span><span class="p">,</span>
<span class="s2">&quot;you&quot;</span><span class="p">:</span> <span class="s2">&quot;do&quot;</span><span class="p">,</span> <span class="s1">&#39;me&#39;</span><span class="p">:</span><span class="s1">&#39;mi&#39;</span><span class="p">,</span><span class="s1">&#39;i&#39;</span><span class="p">:</span><span class="s1">&#39;me&#39;</span><span class="p">,</span> <span class="s1">&#39;be&#39;</span><span class="p">:</span><span class="s2">&quot;hy&#39;e&quot;</span><span class="p">,</span> <span class="s1">&#39;and&#39;</span><span class="p">:</span><span class="s1">&#39;y&#39;</span><span class="p">}</span>
<span class="n">rplanguage</span><span class="o">.</span><span class="n">add_language</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="s2">&quot;elvish&quot;</span><span class="p">,</span> <span class="n">phonemes</span><span class="o">=</span><span class="n">phonemes</span><span class="p">,</span> <span class="n">grammar</span><span class="o">=</span><span class="n">grammar</span><span class="p">,</span>
<span class="n">word_length_variance</span><span class="o">=</span><span class="n">word_length_variance</span><span class="p">,</span>
<span class="n">noun_translate</span><span class="o">=</span><span class="n">noun_translate</span><span class="p">,</span>
<span class="n">noun_postfix</span><span class="o">=</span><span class="n">noun_postfix</span><span class="p">,</span> <span class="n">vowels</span><span class="o">=</span><span class="n">vowels</span><span class="p">,</span>
<span class="n">manual_translations</span><span class="o">=</span><span class="n">manual_translations</span>
<span class="n">manual_translations</span><span class="o">=</span><span class="n">manual_translations</span><span class="p">,</span>
<span class="n">auto_translations</span><span class="o">=</span><span class="s2">&quot;my_word_file.txt&quot;</span><span class="p">)</span>
</pre></div>
</div>
@ -190,9 +219,13 @@ cvcvccc would be c+v+c+v+cc+c (a word like galosch).</p></li>
0 means a minimal variance, higher variance may mean words
have wildly varying length; this strongly affects how the
language “looks”.</p></li>
<li><p><strong>noun_translate</strong> (<em>bool</em><em>, </em><em>optional</em>) 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.</p></li>
<li><p><strong>noun_translate</strong> (<em>bool</em><em>, </em><em>optional</em>) 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
<em>not at the start of a sentence</em>. 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?)</p></li>
<li><p><strong>noun_prefix</strong> (<em>str</em><em>, </em><em>optional</em>) A prefix to go before every noun
in this language (if any).</p></li>
<li><p><strong>noun_postfix</strong> (<em>str</em><em>, </em><em>optuonal</em>) A postfix to go after every noun
@ -379,7 +412,6 @@ means fully obscured.</p></li>
<li><a href="../../0.9.5/api/evennia.contrib.rplanguage.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -396,6 +428,7 @@ means fully obscured.</p></li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.rplanguage</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.rpsystem</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -266,7 +267,10 @@ langname can be None.</p>
</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference internal" href="evennia.contrib.rplanguage.html#evennia.contrib.rplanguage.LanguageError" title="evennia.contrib.rplanguage.LanguageError"><strong>rplanguage.LanguageError</strong></a> If an invalid language was specified.</p>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="#evennia.contrib.rpsystem.LanguageError" title="evennia.contrib.rpsystem.LanguageError"><strong>evennia.contrib.rpsystem.LanguageError</strong></a> If an invalid language was</p></li>
<li><p><strong>specified.</strong> </p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
@ -551,6 +555,11 @@ mechanism. This is useful for adding masks/hoods etc.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.rpsystem.RPCommand.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.RPCommand.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': 'simple parent'}</em><a class="headerlink" href="#evennia.contrib.rpsystem.RPCommand.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -604,6 +613,11 @@ a different language.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdEmote.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdEmote.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 &quot;Hello&quot;, /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 &quot;...&quot; for saying\n things and langcode&quot;...&quot; without spaces to say something in\n a different language.\n\n '}</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdEmote.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -647,6 +661,11 @@ a different language.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSay.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSay.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '\' &quot;', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say &lt;message&gt;\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSay.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -690,6 +709,11 @@ a different language.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSdesc.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSdesc.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'sdesc', 'tags': '', 'text': '\n Assign yourself a short description (sdesc).\n\n Usage:\n sdesc &lt;short description&gt;\n\n Assigns a short description to yourself.\n\n '}</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSdesc.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -748,6 +772,11 @@ sdesc in the emote, regardless of who is seeing it.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdPose.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdPose.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'pose', 'tags': '', 'text': &quot;\n Set a static pose\n\n Usage:\n pose &lt;pose&gt;\n pose default &lt;pose&gt;\n pose reset\n pose obj = &lt;pose&gt;\n pose default obj = &lt;pose&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdPose.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -773,7 +802,7 @@ Using the command without arguments will list all current recogs.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdRecog.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['recognize', 'forget']</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['forget', 'recognize']</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
@ -798,6 +827,11 @@ Using the command without arguments will list all current recogs.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdRecog.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -842,6 +876,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdMask.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdMask.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'unmask', 'category': 'general', 'key': 'mask', 'tags': '', 'text': &quot;\n Wear a mask\n\n Usage:\n mask &lt;new sdesc&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdMask.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1250,7 +1289,6 @@ the evennia.contrib.rplanguage module.</p>
<li><a href="../../0.9.5/api/evennia.contrib.rpsystem.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -1267,6 +1305,7 @@ the evennia.contrib.rplanguage module.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.rpsystem</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.security.auditing</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -91,7 +92,6 @@
<li><a href="../../0.9.5/api/evennia.contrib.security.auditing.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -108,6 +108,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.security.auditing</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.security.auditing.outputs</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -126,7 +127,6 @@ compromised or taken down, losing your logs along with it is no help!).</p>
<li><a href="../../0.9.5/api/evennia.contrib.security.auditing.outputs.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -143,6 +143,7 @@ compromised or taken down, losing your logs along with it is no help!).</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.security.auditing.outputs</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.security.auditing.server</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -165,7 +166,6 @@ writing to log. Recording cleartext password attempts is bad policy.</p>
<li><a href="../../0.9.5/api/evennia.contrib.security.auditing.server.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -182,6 +182,7 @@ writing to log. Recording cleartext password attempts is bad policy.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.security.auditing.server</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.security.auditing.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -105,7 +106,6 @@ parsed from the Session object.</p>
<li><a href="../../0.9.5/api/evennia.contrib.security.auditing.tests.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -122,6 +122,7 @@ parsed from the Session object.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.security.auditing.tests</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.security</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -94,7 +95,6 @@
<li><a href="../../0.9.5/api/evennia.contrib.security.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -111,6 +111,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.security</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.simpledoor</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -180,6 +181,11 @@ unique.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:perm(open) or perm(Builder)'</em><a class="headerlink" href="#evennia.contrib.simpledoor.CmdOpen.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.simpledoor.CmdOpen.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'building', 'key': 'open', 'tags': '', 'text': '\n open a new exit from the current room\n\n Usage:\n open &lt;new exit&gt;[;alias;alias..][:typeclass] [,&lt;return exit&gt;[;alias;..][:typeclass]]] = &lt;destination&gt;\n\n Handles the creation of exits. If a destination is given, the exit\n will point there. The &lt;return exit&gt; 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 '}</em><a class="headerlink" href="#evennia.contrib.simpledoor.CmdOpen.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -223,6 +229,11 @@ close &lt;door&gt;</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.simpledoor.CmdOpenCloseDoor.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.simpledoor.CmdOpenCloseDoor.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'close', 'category': 'general', 'key': 'open', 'tags': '', 'text': '\n Open and close a door\n\n Usage:\n open &lt;door&gt;\n close &lt;door&gt;\n\n '}</em><a class="headerlink" href="#evennia.contrib.simpledoor.CmdOpenCloseDoor.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -270,7 +281,6 @@ close &lt;door&gt;</p>
<li><a href="../../0.9.5/api/evennia.contrib.simpledoor.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -287,6 +297,7 @@ close &lt;door&gt;</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.simpledoor</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.slow_exit</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -134,6 +135,11 @@ is assumed.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.slow_exit.CmdSetSpeed.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.slow_exit.CmdSetSpeed.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'setspeed', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.slow_exit.CmdSetSpeed.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -173,6 +179,11 @@ stored deferred from the exit traversal above.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.slow_exit.CmdStop.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.slow_exit.CmdStop.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'stop', 'tags': '', 'text': '\n stop moving\n\n Usage:\n stop\n\n Stops the current movement, if any.\n '}</em><a class="headerlink" href="#evennia.contrib.slow_exit.CmdStop.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -220,7 +231,6 @@ stored deferred from the exit traversal above.</p>
<li><a href="../../0.9.5/api/evennia.contrib.slow_exit.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -237,6 +247,7 @@ stored deferred from the exit traversal above.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.slow_exit</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.talking_npc</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -121,6 +122,11 @@ that NPC and give you options on what to talk about.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.talking_npc.CmdTalk.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.talking_npc.CmdTalk.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.talking_npc.CmdTalk.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -227,7 +233,6 @@ the conversation defined above.</p>
<li><a href="../../0.9.5/api/evennia.contrib.talking_npc.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -244,6 +249,7 @@ the conversation defined above.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.talking_npc</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.test_traits</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -37,8 +38,406 @@
<div class="bodywrapper">
<div class="body" role="main">
<section id="evennia-contrib-test-traits">
<h1>evennia.contrib.test_traits<a class="headerlink" href="#evennia-contrib-test-traits" title="Permalink to this headline"></a></h1>
<section id="module-evennia.contrib.test_traits">
<span id="evennia-contrib-test-traits"></span><h1>evennia.contrib.test_traits<a class="headerlink" href="#module-evennia.contrib.test_traits" title="Permalink to this headline"></a></h1>
<p>Unit test module for Trait classes.</p>
<dl class="py class">
<dt id="evennia.contrib.test_traits.TraitHandlerTest">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.test_traits.</code><code class="sig-name descname">TraitHandlerTest</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TraitHandlerTest"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TraitHandlerTest" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.test_traits._TraitHandlerBase</span></code></p>
<p>Testing for TraitHandler</p>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TraitHandlerTest.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TraitHandlerTest.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TraitHandlerTest.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TraitHandlerTest.test_add_trait">
<code class="sig-name descname">test_add_trait</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TraitHandlerTest.test_add_trait"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TraitHandlerTest.test_add_trait" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TraitHandlerTest.test_cache">
<code class="sig-name descname">test_cache</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TraitHandlerTest.test_cache"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TraitHandlerTest.test_cache" title="Permalink to this definition"></a></dt>
<dd><p>Cache should not be set until first get</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TraitHandlerTest.test_setting">
<code class="sig-name descname">test_setting</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TraitHandlerTest.test_setting"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TraitHandlerTest.test_setting" title="Permalink to this definition"></a></dt>
<dd><p>Dont allow setting stuff on traithandler</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TraitHandlerTest.test_getting">
<code class="sig-name descname">test_getting</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TraitHandlerTest.test_getting"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TraitHandlerTest.test_getting" title="Permalink to this definition"></a></dt>
<dd><p>Test we are getting data from the dbstore</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TraitHandlerTest.test_all">
<code class="sig-name descname">test_all</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TraitHandlerTest.test_all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TraitHandlerTest.test_all" title="Permalink to this definition"></a></dt>
<dd><p>Test all method</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TraitHandlerTest.test_remove">
<code class="sig-name descname">test_remove</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TraitHandlerTest.test_remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TraitHandlerTest.test_remove" title="Permalink to this definition"></a></dt>
<dd><p>Test remove method</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TraitHandlerTest.test_clear">
<code class="sig-name descname">test_clear</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TraitHandlerTest.test_clear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TraitHandlerTest.test_clear" title="Permalink to this definition"></a></dt>
<dd><p>Test clear method</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TraitHandlerTest.test_trait_db_connection">
<code class="sig-name descname">test_trait_db_connection</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TraitHandlerTest.test_trait_db_connection"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TraitHandlerTest.test_trait_db_connection" title="Permalink to this definition"></a></dt>
<dd><p>Test that updating a trait property actually updates value in db</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.test_traits.TestTrait">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.test_traits.</code><code class="sig-name descname">TestTrait</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTrait"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTrait" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.test_traits._TraitHandlerBase</span></code></p>
<p>Test the base Trait class</p>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTrait.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTrait.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTrait.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTrait.test_init">
<code class="sig-name descname">test_init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTrait.test_init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTrait.test_init" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTrait.test_validate_input__valid">
<code class="sig-name descname">test_validate_input__valid</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTrait.test_validate_input__valid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTrait.test_validate_input__valid" title="Permalink to this definition"></a></dt>
<dd><p>Test valid validation input</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTrait.test_validate_input__fail">
<code class="sig-name descname">test_validate_input__fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTrait.test_validate_input__fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTrait.test_validate_input__fail" title="Permalink to this definition"></a></dt>
<dd><p>Test failing validation</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTrait.test_trait_getset">
<code class="sig-name descname">test_trait_getset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTrait.test_trait_getset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTrait.test_trait_getset" title="Permalink to this definition"></a></dt>
<dd><p>Get-set-del operations on trait</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTrait.test_repr">
<code class="sig-name descname">test_repr</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTrait.test_repr"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTrait.test_repr" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.test_traits.TestTraitStatic">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.test_traits.</code><code class="sig-name descname">TestTraitStatic</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitStatic"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitStatic" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.test_traits._TraitHandlerBase</span></code></p>
<p>Test for static Traits</p>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitStatic.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitStatic.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitStatic.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitStatic.test_init">
<code class="sig-name descname">test_init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitStatic.test_init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitStatic.test_init" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitStatic.test_value">
<code class="sig-name descname">test_value</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitStatic.test_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitStatic.test_value" title="Permalink to this definition"></a></dt>
<dd><p>value is base + mod</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitStatic.test_delete">
<code class="sig-name descname">test_delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitStatic.test_delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitStatic.test_delete" title="Permalink to this definition"></a></dt>
<dd><p>Deleting resets to default.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.test_traits.TestTraitCounter">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.test_traits.</code><code class="sig-name descname">TestTraitCounter</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.test_traits._TraitHandlerBase</span></code></p>
<p>Test for counter- Traits</p>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_init">
<code class="sig-name descname">test_init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_init" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_value">
<code class="sig-name descname">test_value</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_value" title="Permalink to this definition"></a></dt>
<dd><p>value is current + mod, where current defaults to base</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_boundaries__minmax">
<code class="sig-name descname">test_boundaries__minmax</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_boundaries__minmax"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_boundaries__minmax" title="Permalink to this definition"></a></dt>
<dd><p>Test range</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_boundaries__bigmod">
<code class="sig-name descname">test_boundaries__bigmod</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_boundaries__bigmod"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_boundaries__bigmod" title="Permalink to this definition"></a></dt>
<dd><p>add a big mod</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_boundaries__change_boundaries">
<code class="sig-name descname">test_boundaries__change_boundaries</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_boundaries__change_boundaries"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_boundaries__change_boundaries" title="Permalink to this definition"></a></dt>
<dd><p>Change boundaries after base/mod change</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_boundaries__disable">
<code class="sig-name descname">test_boundaries__disable</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_boundaries__disable"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_boundaries__disable" title="Permalink to this definition"></a></dt>
<dd><p>Disable and re-enable boundaries</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_boundaries__inverse">
<code class="sig-name descname">test_boundaries__inverse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_boundaries__inverse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_boundaries__inverse" title="Permalink to this definition"></a></dt>
<dd><p>Set inverse boundaries - limited by base</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_current">
<code class="sig-name descname">test_current</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_current"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_current" title="Permalink to this definition"></a></dt>
<dd><p>Modifying current value</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_delete">
<code class="sig-name descname">test_delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_delete" title="Permalink to this definition"></a></dt>
<dd><p>Deleting resets to default.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_percentage">
<code class="sig-name descname">test_percentage</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_percentage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_percentage" title="Permalink to this definition"></a></dt>
<dd><p>Test percentage calculation</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounter.test_descs">
<code class="sig-name descname">test_descs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounter.test_descs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounter.test_descs" title="Permalink to this definition"></a></dt>
<dd><p>Test descriptions</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.test_traits.TestTraitCounterTimed">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.test_traits.</code><code class="sig-name descname">TestTraitCounterTimed</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounterTimed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounterTimed" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.test_traits._TraitHandlerBase</span></code></p>
<p>Test for trait with timer component</p>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounterTimed.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounterTimed.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounterTimed.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounterTimed.test_timer_rate">
<code class="sig-name descname">test_timer_rate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mock_time</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounterTimed.test_timer_rate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounterTimed.test_timer_rate" title="Permalink to this definition"></a></dt>
<dd><p>Test time stepping</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitCounterTimed.test_timer_ratetarget">
<code class="sig-name descname">test_timer_ratetarget</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mock_time</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitCounterTimed.test_timer_ratetarget"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitCounterTimed.test_timer_ratetarget" title="Permalink to this definition"></a></dt>
<dd><p>test ratetarget</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.test_traits.TestTraitGauge">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.test_traits.</code><code class="sig-name descname">TestTraitGauge</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.test_traits._TraitHandlerBase</span></code></p>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_init">
<code class="sig-name descname">test_init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_init" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_value">
<code class="sig-name descname">test_value</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_value" title="Permalink to this definition"></a></dt>
<dd><p>value is current, where current defaults to base + mod</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_boundaries__minmax">
<code class="sig-name descname">test_boundaries__minmax</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_boundaries__minmax"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_boundaries__minmax" title="Permalink to this definition"></a></dt>
<dd><p>Test range</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_boundaries__bigmod">
<code class="sig-name descname">test_boundaries__bigmod</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_boundaries__bigmod"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_boundaries__bigmod" title="Permalink to this definition"></a></dt>
<dd><p>add a big mod</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_boundaries__change_boundaries">
<code class="sig-name descname">test_boundaries__change_boundaries</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_boundaries__change_boundaries"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_boundaries__change_boundaries" title="Permalink to this definition"></a></dt>
<dd><p>Change boundaries after current change</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_boundaries__disable">
<code class="sig-name descname">test_boundaries__disable</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_boundaries__disable"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_boundaries__disable" title="Permalink to this definition"></a></dt>
<dd><p>Disable and re-enable boundary</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_boundaries__inverse">
<code class="sig-name descname">test_boundaries__inverse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_boundaries__inverse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_boundaries__inverse" title="Permalink to this definition"></a></dt>
<dd><p>Try to set reversed boundaries</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_current">
<code class="sig-name descname">test_current</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_current"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_current" title="Permalink to this definition"></a></dt>
<dd><p>Modifying current value</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_delete">
<code class="sig-name descname">test_delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_delete" title="Permalink to this definition"></a></dt>
<dd><p>Deleting resets to default.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_percentage">
<code class="sig-name descname">test_percentage</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_percentage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_percentage" title="Permalink to this definition"></a></dt>
<dd><p>Test percentage calculation</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGauge.test_descs">
<code class="sig-name descname">test_descs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGauge.test_descs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGauge.test_descs" title="Permalink to this definition"></a></dt>
<dd><p>Test descriptions</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.test_traits.TestTraitGaugeTimed">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.test_traits.</code><code class="sig-name descname">TestTraitGaugeTimed</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGaugeTimed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGaugeTimed" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.test_traits._TraitHandlerBase</span></code></p>
<p>Test for trait with timer component</p>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGaugeTimed.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGaugeTimed.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGaugeTimed.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGaugeTimed.test_timer_rate">
<code class="sig-name descname">test_timer_rate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mock_time</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGaugeTimed.test_timer_rate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGaugeTimed.test_timer_rate" title="Permalink to this definition"></a></dt>
<dd><p>Test time stepping</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestTraitGaugeTimed.test_timer_ratetarget">
<code class="sig-name descname">test_timer_ratetarget</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mock_time</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestTraitGaugeTimed.test_timer_ratetarget"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestTraitGaugeTimed.test_timer_ratetarget" title="Permalink to this definition"></a></dt>
<dd><p>test ratetarget</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.test_traits.TestNumericTraitOperators">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.test_traits.</code><code class="sig-name descname">TestNumericTraitOperators</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methodName</span><span class="o">=</span><span class="default_value">'runTest'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestNumericTraitOperators"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestNumericTraitOperators" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.test.testcases.TestCase</span></code></p>
<p>Test case for numeric magic method implementations.</p>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestNumericTraitOperators.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestNumericTraitOperators.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestNumericTraitOperators.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestNumericTraitOperators.tearDown">
<code class="sig-name descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestNumericTraitOperators.tearDown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestNumericTraitOperators.tearDown" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestNumericTraitOperators.test_pos_shortcut">
<code class="sig-name descname">test_pos_shortcut</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestNumericTraitOperators.test_pos_shortcut"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestNumericTraitOperators.test_pos_shortcut" title="Permalink to this definition"></a></dt>
<dd><p>overridden unary + operator returns <strong>value</strong> property</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestNumericTraitOperators.test_add_traits">
<code class="sig-name descname">test_add_traits</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestNumericTraitOperators.test_add_traits"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestNumericTraitOperators.test_add_traits" title="Permalink to this definition"></a></dt>
<dd><p>test addition of <strong>Trait</strong> objects</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestNumericTraitOperators.test_sub_traits">
<code class="sig-name descname">test_sub_traits</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestNumericTraitOperators.test_sub_traits"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestNumericTraitOperators.test_sub_traits" title="Permalink to this definition"></a></dt>
<dd><p>test subtraction of <strong>Trait</strong> objects</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestNumericTraitOperators.test_mul_traits">
<code class="sig-name descname">test_mul_traits</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestNumericTraitOperators.test_mul_traits"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestNumericTraitOperators.test_mul_traits" title="Permalink to this definition"></a></dt>
<dd><p>test multiplication of <strong>Trait</strong> objects</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestNumericTraitOperators.test_floordiv">
<code class="sig-name descname">test_floordiv</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestNumericTraitOperators.test_floordiv"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestNumericTraitOperators.test_floordiv" title="Permalink to this definition"></a></dt>
<dd><p>test floor division of <strong>Trait</strong> objects</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestNumericTraitOperators.test_comparisons_traits">
<code class="sig-name descname">test_comparisons_traits</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestNumericTraitOperators.test_comparisons_traits"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestNumericTraitOperators.test_comparisons_traits" title="Permalink to this definition"></a></dt>
<dd><p>test equality comparison between <strong>Trait</strong> objects</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.test_traits.TestNumericTraitOperators.test_comparisons_numeric">
<code class="sig-name descname">test_comparisons_numeric</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/test_traits.html#TestNumericTraitOperators.test_comparisons_numeric"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.test_traits.TestNumericTraitOperators.test_comparisons_numeric" title="Permalink to this definition"></a></dt>
<dd><p>equality comparisons between <strong>Trait</strong> and numeric</p>
</dd></dl>
</dd></dl>
</section>
@ -84,7 +483,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +499,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.test_traits</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.traits</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -37,8 +38,811 @@
<div class="bodywrapper">
<div class="body" role="main">
<section id="evennia-contrib-traits">
<h1>evennia.contrib.traits<a class="headerlink" href="#evennia-contrib-traits" title="Permalink to this headline"></a></h1>
<section id="module-evennia.contrib.traits">
<span id="evennia-contrib-traits"></span><h1>evennia.contrib.traits<a class="headerlink" href="#module-evennia.contrib.traits" title="Permalink to this headline"></a></h1>
<p>Traits</p>
<p>Whitenoise 2014, Ainneve contributors,
Griatch 2020</p>
<p>A <strong>Trait</strong> represents a modifiable property on (usually) a Character. They can
be used to represent everything from attributes (str, agi etc) to skills
(hunting 10, swords 14 etc) and dynamically changing things like HP, XP etc.</p>
<p>Traits use Evennia Attributes under the hood, making them persistent (they survive
a server reload/reboot).</p>
<section id="adding-traits-to-a-typeclass">
<h2>Adding Traits to a typeclass<a class="headerlink" href="#adding-traits-to-a-typeclass" title="Permalink to this headline"></a></h2>
<p>To access and manipulate traits on an entity, its Typeclass needs to have a
<strong>TraitHandler</strong> assigned it. Usually, the handler is made available as <strong>.traits</strong>
(in the same way as <strong>.tags</strong> or <strong>.attributes</strong>). Its recommended to do this
using Evennias <strong>lazy_property</strong> (which basically just means its not
initialized until its actually accessed).</p>
<p>Heres an example for adding the TraitHandler to the base Object class:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># mygame/typeclasses/objects.py</span>
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">DefaultObject</span>
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">lazy_property</span>
<span class="kn">from</span> <span class="nn">evennia.contrib.traits</span> <span class="kn">import</span> <span class="n">TraitHandler</span>
<span class="c1"># ...</span>
<span class="k">class</span> <span class="nc">Object</span><span class="p">(</span><span class="n">DefaultObject</span><span class="p">):</span>
<span class="o">...</span>
<span class="nd">@lazy_property</span>
<span class="k">def</span> <span class="nf">traits</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># this adds the handler as .traits</span>
<span class="k">return</span> <span class="n">TraitHandler</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="using-traits">
<h2>Using traits<a class="headerlink" href="#using-traits" title="Permalink to this headline"></a></h2>
<p>A trait is added to the traithandler, after which one can access it
as a property on the handler (similarly to how you can do .db.attrname for Attributes
in Evennia).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># this is an example using the &quot;static&quot; trait, described below</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;hunting&quot;</span><span class="p">,</span> <span class="s2">&quot;Hunting Skill&quot;</span><span class="p">,</span> <span class="n">trait_type</span><span class="o">=</span><span class="s2">&quot;static&quot;</span><span class="p">,</span> <span class="n">base</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="mi">4</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span> <span class="o">+=</span> <span class="mi">5</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="mi">9</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;hp&quot;</span><span class="p">,</span> <span class="s2">&quot;Health&quot;</span><span class="p">,</span> <span class="n">trait_type</span><span class="o">=</span><span class="s2">&quot;gauge&quot;</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">value</span>
<span class="mi">100</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span> <span class="o">-=</span> <span class="mi">200</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">value</span>
<span class="mi">0</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">value</span>
<span class="mi">100</span>
<span class="c1"># you can also access property with getitem</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="p">[</span><span class="s2">&quot;value&quot;</span><span class="p">]</span>
<span class="mi">100</span>
<span class="c1"># you can store arbitrary data persistently as well</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">effect</span> <span class="o">=</span> <span class="s2">&quot;poisoned!&quot;</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">effect</span>
<span class="s2">&quot;poisoned!&quot;</span>
</pre></div>
</div>
<p>When adding the trait, you supply the name of the property (<strong>hunting</strong>) along
with a more human-friendly name (“Hunting Skill”). The latter will show if you
print the trait etc. The <strong>trait_type</strong> is important, this specifies which type
of trait this is.</p>
</section>
<section id="trait-types">
<h2>Trait types<a class="headerlink" href="#trait-types" title="Permalink to this headline"></a></h2>
<p>All default traits have a read-only <strong>.value</strong> property that shows the relevant or
current value of the trait. Exactly what this means depends on the type of trait.</p>
<p>Traits can also be combined to do arithmetic with their .value, if both have a
compatible type.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">trait1</span> <span class="o">+</span> <span class="n">trait2</span>
<span class="go">54</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">trait1</span><span class="o">.</span><span class="n">value</span>
<span class="go">3</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">trait1</span> <span class="o">+</span> <span class="mi">2</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">trait1</span><span class="o">.</span><span class="n">value</span>
<span class="go">5</span>
</pre></div>
</div>
<p>Two numerical traits can also be compared (bigger-than etc), which is useful in
all sorts of rule-resolution.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="n">trait1</span> <span class="o">&gt;</span> <span class="n">trait2</span><span class="p">:</span>
<span class="c1"># do stuff</span>
</pre></div>
</div>
</section>
<section id="static-trait">
<h2>Static trait<a class="headerlink" href="#static-trait" title="Permalink to this headline"></a></h2>
<p><strong>value = base + mod</strong></p>
<p>The static trait has a <strong>base</strong> value and an optional <strong>mod</strong>-ifier. A typical use
of a static trait would be a Strength stat or Skill value. That is, something
that varies slowly or not at all, and which may be modified in-place.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;str&quot;</span><span class="p">,</span> <span class="s2">&quot;Strength&quot;</span><span class="p">,</span> <span class="n">trait_type</span><span class="o">=</span><span class="s2">&quot;static&quot;</span><span class="p">,</span> <span class="n">base</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">mod</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">mytrait</span><span class="o">.</span><span class="n">value</span>
<span class="go">12 # base + mod</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">mytrait</span><span class="o">.</span><span class="n">base</span> <span class="o">+=</span> <span class="mi">2</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">mytrait</span><span class="o">.</span><span class="n">mod</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">mytrait</span><span class="o">.</span><span class="n">value</span>
<span class="go">15</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">mytrait</span><span class="o">.</span><span class="n">mod</span> <span class="o">=</span> <span class="mi">0</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">mytrait</span><span class="o">.</span><span class="n">value</span>
<span class="go">12</span>
</pre></div>
</div>
<section id="counter">
<h3>Counter<a class="headerlink" href="#counter" title="Permalink to this headline"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">min</span><span class="o">/</span><span class="n">unset</span> <span class="n">base</span> <span class="n">base</span><span class="o">+</span><span class="n">mod</span> <span class="nb">max</span><span class="o">/</span><span class="n">unset</span>
<span class="o">|--------------|--------|---------</span><span class="n">X</span><span class="o">--------</span><span class="n">X</span><span class="o">------------|</span>
<span class="n">current</span> <span class="n">value</span>
<span class="o">=</span> <span class="n">current</span>
<span class="o">+</span> <span class="n">mod</span>
</pre></div>
</div>
<p>A counter describes a value that can move from a base. The <strong>.current</strong> property
is the thing usually modified. It starts at the <strong>.base</strong>. One can also add a
modifier, which will both be added to the base and to current (forming
<strong>.value</strong>). The min/max of the range are optional, a boundary set to None will
remove it. A suggested use for a Counter Trait would be to track skill values.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;hunting&quot;</span><span class="p">,</span> <span class="s2">&quot;Hunting Skill&quot;</span><span class="p">,</span> <span class="n">trait_type</span><span class="o">=</span><span class="s2">&quot;counter&quot;</span><span class="p">,</span>
<span class="go"> base=10, mod=1, min=0, max=100)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="go">11 # current starts at base + mod</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">current</span> <span class="o">+=</span> <span class="mi">10</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="go">21</span>
<span class="go"># reset back to base+mod by deleting current</span>
<span class="gp">&gt;&gt;&gt; </span><span class="k">del</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">current</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="go">11</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">max</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># removing upper bound</span>
</pre></div>
</div>
<p>Counters have some extra properties:</p>
<section id="descs">
<h4>.descs<a class="headerlink" href="#descs" title="Permalink to this headline"></a></h4>
<p>The <strong>descs</strong> property is a dict {upper_bound:text_description}. This allows for easily
storing a more human-friendly description of the current value in the
interval. Here is an example for skill values between 0 and 10:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="mi">0</span><span class="p">:</span> <span class="s2">&quot;unskilled&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">:</span> <span class="s2">&quot;neophyte&quot;</span><span class="p">,</span> <span class="mi">5</span><span class="p">:</span> <span class="s2">&quot;trained&quot;</span><span class="p">,</span> <span class="mi">7</span><span class="p">:</span> <span class="s2">&quot;expert&quot;</span><span class="p">,</span> <span class="mi">9</span><span class="p">:</span> <span class="s2">&quot;master&quot;</span><span class="p">}</span>
</pre></div>
</div>
<p>The keys must be supplied from smallest to largest. Any values below the lowest and above the
highest description will be considered to be included in the closest description slot.
By calling <strong>.desc()</strong> on the Counter, will you get the text matching the current <strong>value</strong>
value.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># (could also have passed descs= to traits.add())</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">descs</span> <span class="o">=</span> <span class="p">{</span>
<span class="mi">0</span><span class="p">:</span> <span class="s2">&quot;unskilled&quot;</span><span class="p">,</span> <span class="mi">10</span><span class="p">:</span> <span class="s2">&quot;neophyte&quot;</span><span class="p">,</span> <span class="mi">50</span><span class="p">:</span> <span class="s2">&quot;trained&quot;</span><span class="p">,</span> <span class="mi">70</span><span class="p">:</span> <span class="s2">&quot;expert&quot;</span><span class="p">,</span> <span class="mi">90</span><span class="p">:</span> <span class="s2">&quot;master&quot;</span><span class="p">}</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="mi">11</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">desc</span><span class="p">()</span>
<span class="s2">&quot;neophyte&quot;</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">current</span> <span class="o">+=</span> <span class="mi">60</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="mi">71</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">desc</span><span class="p">()</span>
<span class="s2">&quot;expert&quot;</span>
</pre></div>
</div>
</section>
<section id="rate">
<h4>.rate<a class="headerlink" href="#rate" title="Permalink to this headline"></a></h4>
<p>The <strong>rate</strong> property defaults to 0. If set to a value different from 0, it
allows the trait to change value dynamically. This could be used for example
for an attribute that was temporarily lowered but will gradually (or abruptly)
recover after a certain time. The rate is given as change of the current
<strong>.value</strong> per-second, and this will still be restrained by min/max boundaries,
if those are set.</p>
<p>It is also possible to set a <strong>.ratetarget</strong>, for the auto-change to stop at
(rather than at the min/max boundaries). This allows the value to return to
a previous value.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="go">71</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">ratetarget</span> <span class="o">=</span> <span class="mi">71</span>
<span class="go"># debuff hunting for some reason</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">current</span> <span class="o">-=</span> <span class="mi">30</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="go">41</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">rate</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1"># 1/s increase</span>
<span class="go"># Waiting 5s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="go">46</span>
<span class="go"># Waiting 8s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="go">54</span>
<span class="go"># Waiting 100s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">value</span>
<span class="go">71 # we have stopped at the ratetarget</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">rate</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1"># disable auto-change</span>
</pre></div>
</div>
<p>Note that if <strong>.rate</strong> is a non-integer, the resulting <strong>.value</strong> (at least until it
reaches a boundary or rate-target) will also come out a float (so you can get a
very exact value at the current time). If you expect an integer, you must run
<strong>int()</strong> (or something like <strong>round()</strong>) on the result yourself.</p>
</section>
<section id="percent">
<h4>.percent()<a class="headerlink" href="#percent" title="Permalink to this headline"></a></h4>
<p>If both min and max are defined, the <strong>.percent()</strong> method of the trait will
return the value as a percentage.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">percent</span><span class="p">()</span>
<span class="go">&quot;71.0%&quot;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hunting</span><span class="o">.</span><span class="n">percent</span><span class="p">(</span><span class="n">formatting</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
<span class="go">71.0</span>
</pre></div>
</div>
</section>
</section>
<section id="gauge">
<h3>Gauge<a class="headerlink" href="#gauge" title="Permalink to this headline"></a></h3>
<p>This emulates a [fuel-] gauge that empties from a base+mod value.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">min</span><span class="o">/</span><span class="mi">0</span> <span class="nb">max</span><span class="o">=</span><span class="n">base</span><span class="o">+</span><span class="n">mod</span>
<span class="o">|-----------------------</span><span class="n">X</span><span class="o">---------------------------|</span>
<span class="n">value</span>
<span class="o">=</span> <span class="n">current</span>
</pre></div>
</div>
<p>The <strong>.current</strong> value will start from a full gauge. The .max property is
read-only and is set by <strong>.base</strong> + <strong>.mod</strong>. So contrary to a <strong>Counter</strong>, the
<strong>.mod</strong> modifier only applies to the max value of the gauge and not the current
value. The minimum bound defaults to 0 if not set explicitly.</p>
<p>This trait is useful for showing commonly depletable resources like health,
stamina and the like.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;hp&quot;</span><span class="p">,</span> <span class="s2">&quot;Health&quot;</span><span class="p">,</span> <span class="n">trait_type</span><span class="o">=</span><span class="s2">&quot;gauge&quot;</span><span class="p">,</span> <span class="n">base</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">value</span> <span class="c1"># (or .current)</span>
<span class="go">100</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">mod</span> <span class="o">=</span> <span class="mi">10</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">value</span>
<span class="go">110</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">current</span> <span class="o">-=</span> <span class="mi">30</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">value</span>
<span class="go">80</span>
</pre></div>
</div>
<p>The Gauge trait is subclass of the Counter, so you have access to the same
methods and properties where they make sense. So gauges can also have a
<strong>.descs</strong> dict to describe the intervals in text, and can use <strong>.percent()</strong> to
get how filled it is as a percentage etc.</p>
<p>The <strong>.rate</strong> is particularly relevant for gauges - useful for everything
from poison slowly draining your health, to resting gradually increasing it.</p>
</section>
<section id="trait">
<h3>Trait<a class="headerlink" href="#trait" title="Permalink to this headline"></a></h3>
<p>A single value of any type.</p>
<p>This is the base Trait, meant to inherit from if you want to invent
trait-types from scratch (most of the time youll probably inherit from some of
the more advanced trait-type classes though). A <strong>Trait**s **.value</strong> can be
anything (that can be stored in an Attribute) and if its a integer/float you
can do arithmetic with it, but otherwise it acts just like a glorified
Attribute.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;mytrait&quot;</span><span class="p">,</span> <span class="s2">&quot;My Trait&quot;</span><span class="p">,</span> <span class="n">trait_type</span><span class="o">=</span><span class="s2">&quot;trait&quot;</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="mi">30</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">mytrait</span><span class="o">.</span><span class="n">value</span>
<span class="go">30</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">mytrait</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="s2">&quot;stringvalue&quot;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">mytrait</span><span class="o">.</span><span class="n">value</span>
<span class="go">&quot;stringvalue&quot;</span>
</pre></div>
</div>
</section>
</section>
<section id="expanding-with-your-own-traits">
<h2>Expanding with your own Traits<a class="headerlink" href="#expanding-with-your-own-traits" title="Permalink to this headline"></a></h2>
<p>A Trait is a class inhering from <strong>evennia.contrib.traits.Trait</strong> (or from one of
the existing Trait classes).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># in a file, say, &#39;mygame/world/traits.py&#39;</span>
<span class="kn">from</span> <span class="nn">evennia.contrib.traits</span> <span class="kn">import</span> <span class="n">StaticTrait</span>
<span class="k">class</span> <span class="nc">RageTrait</span><span class="p">(</span><span class="n">StaticTrait</span><span class="p">):</span>
<span class="n">trait_type</span> <span class="o">=</span> <span class="s2">&quot;rage&quot;</span>
<span class="n">default_keys</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;rage&quot;</span><span class="p">:</span> <span class="mi">0</span>
<span class="p">}</span>
<span class="k">def</span> <span class="nf">berserk</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">mod</span> <span class="o">=</span> <span class="mi">100</span>
<span class="k">def</span> <span class="nf">sedate</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">mod</span> <span class="o">=</span> <span class="mi">0</span>
</pre></div>
</div>
<p>Above is an example custom-trait-class “rage” that stores a property “rage” on
itself, with a default value of 0. This has all the functionality of a Trait -
for example, if you do del on the <strong>rage</strong> property, it will be set back to its
default (0). Above we also added some helper methods.</p>
<p>To add your custom RageTrait to Evennia, add the following to your settings file
(assuming your class is in mygame/world/traits.py):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">TRAIT_CLASS_PATHS</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;world.traits.RageTrait&quot;</span><span class="p">]</span>
</pre></div>
</div>
<p>Reload the server and you should now be able to use your trait:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s2">&quot;mood&quot;</span><span class="p">,</span> <span class="s2">&quot;A dark mood&quot;</span><span class="p">,</span> <span class="n">rage</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">trait_type</span><span class="o">=</span><span class="s1">&#39;rage&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">mood</span><span class="o">.</span><span class="n">rage</span>
<span class="go">30</span>
</pre></div>
</div>
<hr class="docutils" />
<dl class="py exception">
<dt id="evennia.contrib.traits.TraitException">
<em class="property">exception </em><code class="sig-prename descclassname">evennia.contrib.traits.</code><code class="sig-name descname">TraitException</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#TraitException"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.TraitException" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">RuntimeError</span></code></p>
<p>Base exception class raised by <strong>Trait</strong> objects.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>msg</strong> (<em>str</em>) informative error message</p>
</dd>
</dl>
<dl class="py method">
<dt id="evennia.contrib.traits.TraitException.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#TraitException.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.TraitException.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.traits.MandatoryTraitKey">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.traits.</code><code class="sig-name descname">MandatoryTraitKey</code><a class="reference internal" href="../_modules/evennia/contrib/traits.html#MandatoryTraitKey"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.MandatoryTraitKey" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>This represents a required key that must be
supplied when a Trait is initialized. Its used
by Trait classes when defining their required keys.</p>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.traits.TraitHandler">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.traits.</code><code class="sig-name descname">TraitHandler</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em>, <em class="sig-param"><span class="n">db_attribute_key</span><span class="o">=</span><span class="default_value">'traits'</span></em>, <em class="sig-param"><span class="n">db_attribute_category</span><span class="o">=</span><span class="default_value">'traits'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#TraitHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.TraitHandler" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Factory class that instantiates Trait objects.</p>
<dl class="py method">
<dt id="evennia.contrib.traits.TraitHandler.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em>, <em class="sig-param"><span class="n">db_attribute_key</span><span class="o">=</span><span class="default_value">'traits'</span></em>, <em class="sig-param"><span class="n">db_attribute_category</span><span class="o">=</span><span class="default_value">'traits'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#TraitHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.TraitHandler.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize the handler and set up its internal Attribute-based storage.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> (<em>Object</em>) Parent Object typeclass for this TraitHandler</p></li>
<li><p><strong>db_attribute_key</strong> (<em>str</em>) Name of the DB attribute for trait data storage</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.TraitHandler.all">
<em class="property">property </em><code class="sig-name descname">all</code><a class="headerlink" href="#evennia.contrib.traits.TraitHandler.all" title="Permalink to this definition"></a></dt>
<dd><p>Get all trait keys in this handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>list</em> All Trait keys.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.TraitHandler.get">
<code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">trait_key</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#TraitHandler.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.TraitHandler.get" title="Permalink to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>trait_key</strong> (<em>str</em>) key from the traits dict containing config data.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>(<strong>Trait</strong> or <strong>None</strong>) named Trait class or None if trait key
is not found in traits collection.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.TraitHandler.add">
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">trait_key</span></em>, <em class="sig-param"><span class="n">name</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">trait_type</span><span class="o">=</span><span class="default_value">'static'</span></em>, <em class="sig-param"><span class="n">force</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">trait_properties</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#TraitHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.TraitHandler.add" title="Permalink to this definition"></a></dt>
<dd><p>Create a new Trait and add it to the handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>trait_key</strong> (<em>str</em>) This is the name of the property that will be made
available on this handler (example hp).</p></li>
<li><p><strong>name</strong> (<em>str</em><em>, </em><em>optional</em>) Name of the Trait, like “Health”. If
not given, will use <strong>trait_key</strong> starting with a capital letter.</p></li>
<li><p><strong>trait_type</strong> (<em>str</em><em>, </em><em>optional</em>) One of static, counter or gauge.</p></li>
<li><p><strong>force_add</strong> (<em>bool</em>) If set, create a new Trait even if a Trait with
the same <strong>trait_key</strong> already exists.</p></li>
<li><p><strong>trait_properties</strong> (<em>dict</em>) These will all be use to initialize
the new trait. See the <strong>properties</strong> class variable on each
Trait class to see which are required.</p></li>
</ul>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><a class="reference internal" href="#evennia.contrib.traits.TraitException" title="evennia.contrib.traits.TraitException"><strong>TraitException</strong></a> If specifying invalid values for the given Trait,
the <strong>trait_type</strong> is not recognized, or an existing trait
already exists (and <strong>force</strong> is unset).</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.TraitHandler.remove">
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">trait_key</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#TraitHandler.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.TraitHandler.remove" title="Permalink to this definition"></a></dt>
<dd><p>Remove a Trait from the handlers parent object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>trait_key</strong> (<em>str</em>) The name of the trait to remove.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.TraitHandler.clear">
<code class="sig-name descname">clear</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#TraitHandler.clear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.TraitHandler.clear" title="Permalink to this definition"></a></dt>
<dd><p>Remove all Traits from the handlers parent object.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.traits.Trait">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.traits.</code><code class="sig-name descname">Trait</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">trait_data</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#Trait"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.Trait" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Represents an object or Character trait. This simple base is just
storing anything in its value property, so its pretty much just a
different wrapper to an Attribute. It does no type-checking of what is
stored.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>See module docstring for configuration details.</p>
</div>
<p>value</p>
<dl class="py attribute">
<dt id="evennia.contrib.traits.Trait.trait_type">
<code class="sig-name descname">trait_type</code><em class="property"> = 'trait'</em><a class="headerlink" href="#evennia.contrib.traits.Trait.trait_type" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.traits.Trait.default_keys">
<code class="sig-name descname">default_keys</code><em class="property"> = {'value': None}</em><a class="headerlink" href="#evennia.contrib.traits.Trait.default_keys" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.traits.Trait.allow_extra_properties">
<code class="sig-name descname">allow_extra_properties</code><em class="property"> = True</em><a class="headerlink" href="#evennia.contrib.traits.Trait.allow_extra_properties" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.Trait.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">trait_data</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#Trait.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.Trait.__init__" title="Permalink to this definition"></a></dt>
<dd><p>This both initializes and validates the Trait on creation. It must
raise exception if validation fails. The TraitHandler will call this
when the trait is furst added, to make sure it validates before
storing.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>trait_data</strong> (<em>any</em>) Any pickle-able values to store with this trait.
This must contain any cls.default_keys that do not have a default
value in cls.data_default_values. Any extra kwargs will be made
available as extra properties on the Trait, assuming the class
variable <strong>allow_extra_properties</strong> is set.</p>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><a class="reference internal" href="#evennia.contrib.traits.TraitException" title="evennia.contrib.traits.TraitException"><strong>TraitException</strong></a> If input-validation failed.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.Trait.validate_input">
<em class="property">static </em><code class="sig-name descname">validate_input</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cls</span></em>, <em class="sig-param"><span class="n">trait_data</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#Trait.validate_input"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.Trait.validate_input" title="Permalink to this definition"></a></dt>
<dd><p>Validate input</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>trait_data</strong> (<em>dict</em><em> or </em><em>_SaverDict</em>) Data to be used for
initialization of this trait.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>dict</em> </p>
<dl class="simple">
<dt>Validated data, possibly complemented with default</dt><dd><p>values from default_keys.</p>
</dd>
</dl>
</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference internal" href="#evennia.contrib.traits.TraitException" title="evennia.contrib.traits.TraitException"><strong>TraitException</strong></a> If finding unset keys without a default.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.Trait.name">
<em class="property">property </em><code class="sig-name descname">name</code><a class="headerlink" href="#evennia.contrib.traits.Trait.name" title="Permalink to this definition"></a></dt>
<dd><p>Display name for the trait.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.Trait.key">
<em class="property">property </em><code class="sig-name descname">key</code><a class="headerlink" href="#evennia.contrib.traits.Trait.key" title="Permalink to this definition"></a></dt>
<dd><p>Display name for the trait.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.Trait.value">
<em class="property">property </em><code class="sig-name descname">value</code><a class="headerlink" href="#evennia.contrib.traits.Trait.value" title="Permalink to this definition"></a></dt>
<dd><p>Store a value</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.traits.StaticTrait">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.traits.</code><code class="sig-name descname">StaticTrait</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">trait_data</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#StaticTrait"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.StaticTrait" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.traits.Trait" title="evennia.contrib.traits.Trait"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.traits.Trait</span></code></a></p>
<p>Static Trait. This is a single value with a modifier,
with no concept of a current value.</p>
<p>value = base + mod</p>
<dl class="py attribute">
<dt id="evennia.contrib.traits.StaticTrait.trait_type">
<code class="sig-name descname">trait_type</code><em class="property"> = 'static'</em><a class="headerlink" href="#evennia.contrib.traits.StaticTrait.trait_type" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.traits.StaticTrait.default_keys">
<code class="sig-name descname">default_keys</code><em class="property"> = {'base': 0, 'mod': 0}</em><a class="headerlink" href="#evennia.contrib.traits.StaticTrait.default_keys" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.StaticTrait.mod">
<em class="property">property </em><code class="sig-name descname">mod</code><a class="headerlink" href="#evennia.contrib.traits.StaticTrait.mod" title="Permalink to this definition"></a></dt>
<dd><p>The traits modifier.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.StaticTrait.value">
<em class="property">property </em><code class="sig-name descname">value</code><a class="headerlink" href="#evennia.contrib.traits.StaticTrait.value" title="Permalink to this definition"></a></dt>
<dd><p>The value of the Trait</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.traits.CounterTrait">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.traits.</code><code class="sig-name descname">CounterTrait</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">trait_data</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#CounterTrait"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.CounterTrait" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.traits.Trait" title="evennia.contrib.traits.Trait"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.traits.Trait</span></code></a></p>
<p>Counter Trait.</p>
<p>This includes modifications and min/max limits as well as the notion of a
current value. The value can also be reset to the base value.</p>
<dl class="simple">
<dt>min/unset base base+mod max/unset</dt><dd><dl class="simple">
<dt><a href="#id1"><span class="problematic" id="id2">|--------------|</span></a>——–<a href="#id3"><span class="problematic" id="id4">|---------X--------X------------|</span></a></dt><dd><dl class="simple">
<dt>current value</dt><dd><p>= current
+ mod</p>
</dd>
</dl>
</dd>
</dl>
</dd>
</dl>
<ul>
<li><p>value = current + mod, starts at base + mod</p></li>
<li><p>if min or max is None, there is no upper/lower bound (default)</p></li>
<li><p>if max is set to “base”, max will be equal ot base+mod</p></li>
<li><p>descs are used to optionally describe each value interval.
The desc of the current <strong>value</strong> value can then be retrieved
with .desc(). The property is set as {lower_bound_inclusive:desc}
and should be given smallest-to-biggest. For example, for
a skill rating between 0 and 10:</p>
<blockquote>
<div><dl class="simple">
<dt>{0: “unskilled”,</dt><dd><p>1: “neophyte”,
5: “traited”,
7: “expert”,
9: “master”}</p>
</dd>
</dl>
</div></blockquote>
</li>
<li><p>rate/ratetarget are optional settings to include a rate-of-change
of the current value. This is calculated on-demand and allows for
describing a value that is gradually growing smaller/bigger. The
increase will stop when either reaching a boundary (if set) or
ratetarget. Setting the rate to 0 (default) stops any change.</p></li>
</ul>
<dl class="py attribute">
<dt id="evennia.contrib.traits.CounterTrait.trait_type">
<code class="sig-name descname">trait_type</code><em class="property"> = 'counter'</em><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.trait_type" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.traits.CounterTrait.default_keys">
<code class="sig-name descname">default_keys</code><em class="property"> = {'base': 0, 'descs': None, 'max': None, 'min': None, 'mod': 0, 'rate': 0, 'ratetarget': None}</em><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.default_keys" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.validate_input">
<em class="property">static </em><code class="sig-name descname">validate_input</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cls</span></em>, <em class="sig-param"><span class="n">trait_data</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#CounterTrait.validate_input"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.validate_input" title="Permalink to this definition"></a></dt>
<dd><p>Add extra validation for descs</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.base">
<em class="property">property </em><code class="sig-name descname">base</code><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.base" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.mod">
<em class="property">property </em><code class="sig-name descname">mod</code><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.mod" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.min">
<em class="property">property </em><code class="sig-name descname">min</code><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.min" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.max">
<em class="property">property </em><code class="sig-name descname">max</code><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.max" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.current">
<em class="property">property </em><code class="sig-name descname">current</code><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.current" title="Permalink to this definition"></a></dt>
<dd><p>The <strong>current</strong> value of the <strong>Trait</strong>. This does not have .mod added.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.value">
<em class="property">property </em><code class="sig-name descname">value</code><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.value" title="Permalink to this definition"></a></dt>
<dd><p>The value of the Trait (current + mod)</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.ratetarget">
<em class="property">property </em><code class="sig-name descname">ratetarget</code><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.ratetarget" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.percent">
<code class="sig-name descname">percent</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">formatting</span><span class="o">=</span><span class="default_value">'{:3.1f}%'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#CounterTrait.percent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.percent" title="Permalink to this definition"></a></dt>
<dd><p>Return the current value as a percentage.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>formatting</strong> (<em>str</em><em>, </em><em>optional</em>) Should contain a
format-tag which will receive the value. If
this is set to None, the raw float will be
returned.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>float or str</em> </p>
<dl class="simple">
<dt>Depending of if a <strong>formatting</strong> string</dt><dd><p>is supplied or not.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.reset">
<code class="sig-name descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#CounterTrait.reset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.reset" title="Permalink to this definition"></a></dt>
<dd><p>Resets <strong>current</strong> property equal to <strong>base</strong> value.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.CounterTrait.desc">
<code class="sig-name descname">desc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#CounterTrait.desc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.CounterTrait.desc" title="Permalink to this definition"></a></dt>
<dd><p>Retrieve descriptions of the current value, if available.</p>
<p>This must be a mapping {upper_bound_inclusive: text},
ordered from small to big. Any value above the highest
upper bound will be included as being in the highest bound.
rely on Python3.7+ dicts retaining ordering to let this
describe the interval.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>str</em> </p>
<dl class="simple">
<dt>The description describing the <strong>value</strong> value.</dt><dd><p>If not found, returns the empty string.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.traits.GaugeTrait">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.traits.</code><code class="sig-name descname">GaugeTrait</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">trait_data</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#GaugeTrait"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.traits.CounterTrait" title="evennia.contrib.traits.CounterTrait"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.traits.CounterTrait</span></code></a></p>
<p>Gauge Trait.</p>
<p>This emulates a gauge-meter that empties from a base+mod value.</p>
<dl>
<dt>min/0 max=base+mod</dt><dd><dl>
<dt><a href="#id5"><span class="problematic" id="id6">|-----------------------X---------------------------|</span></a></dt><dd><blockquote>
<div><p>value</p>
</div></blockquote>
<p>= current</p>
</dd>
</dl>
</dd>
</dl>
<ul>
<li><p>min defaults to 0</p></li>
<li><p>max value is always base + mad</p></li>
<li><p>.max is an alias of .base</p></li>
<li><p>value = current and varies from min to max.</p></li>
<li><dl>
<dt>descs is a mapping {upper_bound_inclusive: desc}. These</dt><dd><p>are checked with .desc() and can be retrieve a text
description for a given current value.</p>
<p>For example, this could be used to describe health
values between 0 and 100:</p>
<blockquote>
<div><dl class="simple">
<dt>{0: “Dead”</dt><dd><p>10: “Badly hurt”,
30: “Bleeding”,
50: “Hurting”,
90: “Healthy”}</p>
</dd>
</dl>
</div></blockquote>
</dd>
</dl>
</li>
</ul>
<dl class="py attribute">
<dt id="evennia.contrib.traits.GaugeTrait.trait_type">
<code class="sig-name descname">trait_type</code><em class="property"> = 'gauge'</em><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait.trait_type" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.traits.GaugeTrait.default_keys">
<code class="sig-name descname">default_keys</code><em class="property"> = {'base': 0, 'descs': None, 'min': 0, 'mod': 0, 'rate': 0, 'ratetarget': None}</em><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait.default_keys" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.GaugeTrait.base">
<em class="property">property </em><code class="sig-name descname">base</code><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait.base" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.GaugeTrait.mod">
<em class="property">property </em><code class="sig-name descname">mod</code><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait.mod" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.GaugeTrait.min">
<em class="property">property </em><code class="sig-name descname">min</code><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait.min" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.GaugeTrait.max">
<em class="property">property </em><code class="sig-name descname">max</code><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait.max" title="Permalink to this definition"></a></dt>
<dd><p>The max is always base + mod.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.GaugeTrait.current">
<em class="property">property </em><code class="sig-name descname">current</code><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait.current" title="Permalink to this definition"></a></dt>
<dd><p>The <strong>current</strong> value of the gauge.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.GaugeTrait.value">
<em class="property">property </em><code class="sig-name descname">value</code><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait.value" title="Permalink to this definition"></a></dt>
<dd><p>The value of the trait</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.GaugeTrait.percent">
<code class="sig-name descname">percent</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">formatting</span><span class="o">=</span><span class="default_value">'{:3.1f}%'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#GaugeTrait.percent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait.percent" title="Permalink to this definition"></a></dt>
<dd><p>Return the current value as a percentage.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>formatting</strong> (<em>str</em><em>, </em><em>optional</em>) Should contain a
format-tag which will receive the value. If
this is set to None, the raw float will be
returned.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>float or str</em> </p>
<dl class="simple">
<dt>Depending of if a <strong>formatting</strong> string</dt><dd><p>is supplied or not.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.traits.GaugeTrait.reset">
<code class="sig-name descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/traits.html#GaugeTrait.reset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.traits.GaugeTrait.reset" title="Permalink to this definition"></a></dt>
<dd><p>Fills the gauge to its maximum allowed by base + mod</p>
</dd></dl>
</dd></dl>
</section>
</section>
@ -61,6 +865,28 @@
</div>
</div>
<script>$('#searchbox').show(0);</script>
<p><h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.contrib.traits</a><ul>
<li><a class="reference internal" href="#adding-traits-to-a-typeclass">Adding Traits to a typeclass</a></li>
<li><a class="reference internal" href="#using-traits">Using traits</a></li>
<li><a class="reference internal" href="#trait-types">Trait types</a></li>
<li><a class="reference internal" href="#static-trait">Static trait</a><ul>
<li><a class="reference internal" href="#counter">Counter</a><ul>
<li><a class="reference internal" href="#descs">.descs</a></li>
<li><a class="reference internal" href="#rate">.rate</a></li>
<li><a class="reference internal" href="#percent">.percent()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#gauge">Gauge</a></li>
<li><a class="reference internal" href="#trait">Trait</a></li>
</ul>
</li>
<li><a class="reference internal" href="#expanding-with-your-own-traits">Expanding with your own Traits</a></li>
</ul>
</li>
</ul>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
@ -84,7 +910,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +926,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.traits</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tree_select</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -370,6 +371,11 @@ set in self.parse())</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.tree_select.CmdNameColor.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tree_select.CmdNameColor.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.tree_select.CmdNameColor.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py function">
@ -434,7 +440,6 @@ to determine the color the player chose.</p></li>
<li><a href="../../0.9.5/api/evennia.contrib.tree_select.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -451,6 +456,7 @@ to determine the color the player chose.</p></li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tree_select</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -93,7 +94,6 @@
<li><a href="../../0.9.5/api/evennia.contrib.turnbattle.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -110,6 +110,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle.tb_basic</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -501,6 +502,11 @@ When its your turn, you can attack other characters.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdFight.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_basic.CmdFight.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdFight.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -540,6 +546,11 @@ a chance to hit, and if successful, will deal damage.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdAttack.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_basic.CmdAttack.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack &lt;target&gt;\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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdAttack.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -560,7 +571,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_basic.CmdPass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['hold', 'wait']</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['wait', 'hold']</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -579,6 +590,11 @@ if there are still any actions you can take.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdPass.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_basic.CmdPass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -619,6 +635,11 @@ fight ends.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdDisengage.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_basic.CmdDisengage.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdDisengage.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -658,6 +679,11 @@ rest if youre not in a fight.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdRest.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_basic.CmdRest.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdRest.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -699,6 +725,11 @@ topics related to the game.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdCombatHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_basic.CmdCombatHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help &lt;topic or command&gt;\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_basic.CmdCombatHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -769,7 +800,6 @@ topics related to the game.</p>
<li><a href="../../0.9.5/api/evennia.contrib.turnbattle.tb_basic.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -786,6 +816,7 @@ topics related to the game.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle.tb_basic</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle.tb_equip</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -618,6 +619,11 @@ When its your turn, you can attack other characters.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdFight.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdFight.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdFight.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -657,6 +663,11 @@ a chance to hit, and if successful, will deal damage.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdAttack.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdAttack.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack &lt;target&gt;\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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdAttack.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -677,7 +688,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdPass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['hold', 'wait']</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['wait', 'hold']</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -696,6 +707,11 @@ if there are still any actions you can take.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdPass.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdPass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -736,6 +752,11 @@ fight ends.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdDisengage.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdDisengage.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdDisengage.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -775,6 +796,11 @@ rest if youre not in a fight.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdRest.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdRest.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdRest.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -816,6 +842,11 @@ topics related to the game.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdCombatHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdCombatHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help &lt;topic or command&gt;\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdCombatHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -859,6 +890,11 @@ currently wielding.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdWield.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdWield.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'wield', 'tags': '', 'text': '\n Wield a weapon you are carrying\n\n Usage:\n wield &lt;weapon&gt;\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 &quot;unwield&quot; command to stop wielding any weapon you are\n currently wielding.\n '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdWield.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -898,6 +934,11 @@ weapon you are currently wielding and become unarmed.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdUnwield.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdUnwield.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdUnwield.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -938,6 +979,11 @@ command to remove any armor you are wearing.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdDon.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdDon.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'don', 'tags': '', 'text': '\n Don armor that you are carrying\n\n Usage:\n don &lt;armor&gt;\n\n Select armor to wear in combat. You can\'t use this\n command in the middle of a fight. Use the &quot;doff&quot;\n command to remove any armor you are wearing.\n '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdDon.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -978,6 +1024,11 @@ You cant use this command in combat.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdDoff.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_equip.CmdDoff.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'doff', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_equip.CmdDoff.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1048,7 +1099,6 @@ You cant use this command in combat.</p>
<li><a href="../../0.9.5/api/evennia.contrib.turnbattle.tb_equip.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -1065,6 +1115,7 @@ You cant use this command in combat.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle.tb_equip</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle.tb_items</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -652,6 +653,11 @@ When its your turn, you can attack other characters.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdFight.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_items.CmdFight.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdFight.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -691,6 +697,11 @@ a chance to hit, and if successful, will deal damage.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdAttack.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_items.CmdAttack.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack &lt;target&gt;\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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdAttack.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -711,7 +722,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_items.CmdPass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['hold', 'wait']</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['wait', 'hold']</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -730,6 +741,11 @@ if there are still any actions you can take.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdPass.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_items.CmdPass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -770,6 +786,11 @@ fight ends.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdDisengage.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_items.CmdDisengage.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdDisengage.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -809,6 +830,11 @@ rest if youre not in a fight.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdRest.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_items.CmdRest.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdRest.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -850,6 +876,11 @@ topics related to the game.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdCombatHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_items.CmdCombatHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help &lt;topic or command&gt;\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdCombatHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -890,6 +921,11 @@ to attack others, and as such can only be used in combat.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdUse.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_items.CmdUse.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'use', 'tags': '', 'text': '\n Use an item.\n\n Usage:\n use &lt;item&gt; [= 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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_items.CmdUse.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1043,7 +1079,6 @@ items using the same function work differently.</p>
<li><a href="../../0.9.5/api/evennia.contrib.turnbattle.tb_items.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -1060,6 +1095,7 @@ items using the same function work differently.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle.tb_items</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle.tb_magic</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -524,6 +525,11 @@ When its your turn, you can attack other characters.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdFight.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_magic.CmdFight.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdFight.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -563,6 +569,11 @@ a chance to hit, and if successful, will deal damage.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdAttack.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_magic.CmdAttack.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': '\n Attacks another character.\n\n Usage:\n attack &lt;target&gt;\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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdAttack.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -583,7 +594,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_magic.CmdPass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['hold', 'wait']</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['wait', 'hold']</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -602,6 +613,11 @@ if there are still any actions you can take.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdPass.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_magic.CmdPass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -642,6 +658,11 @@ fight ends.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdDisengage.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_magic.CmdDisengage.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdDisengage.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -695,6 +716,11 @@ fight ends.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdLearnSpell.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_magic.CmdLearnSpell.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'magic', 'key': 'learnspell', 'tags': '', 'text': &quot;\n Learn a magic spell.\n\n Usage:\n learnspell &lt;spell name&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdLearnSpell.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -742,6 +768,11 @@ function.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdCast.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_magic.CmdCast.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'magic', 'key': 'cast', 'tags': '', 'text': &quot;\n Cast a magic spell that you know, provided you have the MP\n to spend on its casting.\n\n Usage:\n cast &lt;spellname&gt; [= &lt;target1&gt;, &lt;target2&gt;, 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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdCast.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -781,6 +812,11 @@ only rest if youre not in a fight.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdRest.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_magic.CmdRest.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdRest.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -820,6 +856,11 @@ other targets in combat.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdStatus.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_magic.CmdStatus.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdStatus.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -861,6 +902,11 @@ topics related to the game.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdCombatHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_magic.CmdCombatHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help &lt;topic or command&gt;\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_magic.CmdCombatHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -982,7 +1028,6 @@ instead of creating objects directly.</p>
<li><a href="../../0.9.5/api/evennia.contrib.turnbattle.tb_magic.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -999,6 +1044,7 @@ instead of creating objects directly.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle.tb_magic</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle.tb_range</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -815,6 +816,11 @@ When its your turn, you can attack other characters.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdFight.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdFight.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'fight', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdFight.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -856,6 +862,11 @@ you. Use the approach command to get closer to a target.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdAttack.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdAttack.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'attack', 'tags': '', 'text': &quot;\n Attacks another character in melee.\n\n Usage:\n attack &lt;target&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdAttack.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -898,6 +909,11 @@ nearby enemies.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdShoot.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdShoot.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'shoot', 'tags': '', 'text': &quot;\n Attacks another character from range.\n\n Usage:\n shoot &lt;target&gt;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdShoot.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -937,6 +953,11 @@ characters you are 0 spaces away from.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdApproach.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdApproach.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'approach', 'tags': '', 'text': '\n Approaches an object.\n\n Usage:\n approach &lt;target&gt;\n\n Move one space toward a character or object. You can only attack\n characters you are 0 spaces away from.\n '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdApproach.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -975,6 +996,11 @@ characters you are 0 spaces away from.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdWithdraw.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdWithdraw.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'withdraw', 'tags': '', 'text': '\n Moves away from an object.\n\n Usage:\n withdraw &lt;target&gt;\n\n Move one space away from a character or object.\n '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdWithdraw.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -995,7 +1021,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdPass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['hold', 'wait']</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['wait', 'hold']</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -1014,6 +1040,11 @@ if there are still any actions you can take.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdPass.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdPass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1054,6 +1085,11 @@ fight ends.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdDisengage.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdDisengage.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'spare', 'category': 'combat', 'key': 'disengage', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdDisengage.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1093,6 +1129,11 @@ rest if youre not in a fight.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdRest.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdRest.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'combat', 'key': 'rest', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdRest.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1132,6 +1173,11 @@ other targets in combat.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdStatus.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdStatus.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdStatus.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1173,6 +1219,11 @@ topics related to the game.</p>
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdCombatHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.turnbattle.tb_range.CmdCombatHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help &lt;topic or command&gt;\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}</em><a class="headerlink" href="#evennia.contrib.turnbattle.tb_range.CmdCombatHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
@ -1243,7 +1294,6 @@ topics related to the game.</p>
<li><a href="../../0.9.5/api/evennia.contrib.turnbattle.tb_range.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -1260,6 +1310,7 @@ topics related to the game.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.turnbattle.tb_range</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorial_examples.bodyfunctions</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -139,7 +140,6 @@ a random check here so as to only return 33% of the time.</p>
<li><a href="../../0.9.5/api/evennia.contrib.tutorial_examples.bodyfunctions.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -156,6 +156,7 @@ a random check here so as to only return 33% of the time.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorial_examples.bodyfunctions</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorial_examples.example_batch_code</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -84,7 +85,6 @@
<li><a href="../../0.9.5/api/evennia.contrib.tutorial_examples.example_batch_code.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +101,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorial_examples.example_batch_code</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorial_examples</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -44,7 +45,10 @@
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorial_examples.bodyfunctions.html">evennia.contrib.tutorial_examples.bodyfunctions</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorial_examples.example_batch_code.html">evennia.contrib.tutorial_examples.example_batch_code</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorial_examples.mirror.html">evennia.contrib.tutorial_examples.mirror</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorial_examples.red_button.html">evennia.contrib.tutorial_examples.red_button</a></li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorial_examples.red_button.html">evennia.contrib.tutorial_examples.red_button</a><ul>
<li class="toctree-l2"><a class="reference internal" href="evennia.contrib.tutorial_examples.red_button.html#technical">Technical</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="evennia.contrib.tutorial_examples.tests.html">evennia.contrib.tutorial_examples.tests</a></li>
</ul>
</div>
@ -93,7 +97,6 @@
<li><a href="../../0.9.5/api/evennia.contrib.tutorial_examples.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -110,6 +113,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorial_examples</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorial_examples.mirror</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -37,8 +38,79 @@
<div class="bodywrapper">
<div class="body" role="main">
<section id="evennia-contrib-tutorial-examples-mirror">
<h1>evennia.contrib.tutorial_examples.mirror<a class="headerlink" href="#evennia-contrib-tutorial-examples-mirror" title="Permalink to this headline"></a></h1>
<section id="module-evennia.contrib.tutorial_examples.mirror">
<span id="evennia-contrib-tutorial-examples-mirror"></span><h1>evennia.contrib.tutorial_examples.mirror<a class="headerlink" href="#module-evennia.contrib.tutorial_examples.mirror" title="Permalink to this headline"></a></h1>
<p>TutorialMirror</p>
<p>A simple mirror object to experiment with.</p>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.mirror.TutorialMirror">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.mirror.</code><code class="sig-name descname">TutorialMirror</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/mirror.html#TutorialMirror"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.mirror.TutorialMirror" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
<p>A simple mirror object that
- echoes back the description of the object looking at it
- echoes back whatever is being sent to its .msg - to the</p>
<blockquote>
<div><p>sender, if given, otherwise to the location of the mirror.</p>
</div></blockquote>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.mirror.TutorialMirror.return_appearance">
<code class="sig-name descname">return_appearance</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/mirror.html#TutorialMirror.return_appearance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.mirror.TutorialMirror.return_appearance" title="Permalink to this definition"></a></dt>
<dd><p>This formats the description of this object. Called by the look command.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<em>Object</em>) Object doing the looking.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.mirror.TutorialMirror.msg">
<code class="sig-name descname">msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">from_obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/mirror.html#TutorialMirror.msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.mirror.TutorialMirror.msg" title="Permalink to this definition"></a></dt>
<dd><p>Simply override .msg to echo back to the messenger or to the current
location.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>str</em><em> or </em><em>tuple</em><em>, </em><em>optional</em>) The message to send. This
is treated internally like any send-command, so its
value can be a tuple if sending multiple arguments to
the <strong>text</strong> oob command.</p></li>
<li><p><strong>from_obj</strong> (<em>obj</em><em> or </em><em>iterable</em>) given, at_msg_send will be called. This value will be
passed on to the protocol. If iterable, will execute hook
on all entities in it.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.tutorial_examples.mirror.TutorialMirror.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.contrib.tutorial_examples.mirror.TutorialMirror.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject.DoesNotExist" title="evennia.objects.objects.DefaultObject.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.tutorial_examples.mirror.TutorialMirror.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.contrib.tutorial_examples.mirror.TutorialMirror.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject.MultipleObjectsReturned" title="evennia.objects.objects.DefaultObject.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.mirror.TutorialMirror.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.tutorial_examples.mirror.TutorialMirror'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.mirror.TutorialMirror.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.mirror.TutorialMirror.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'TutorialMirror'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.mirror.TutorialMirror.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
@ -84,7 +156,6 @@
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -101,6 +172,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorial_examples.mirror</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

View file

@ -30,6 +30,7 @@
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorial_examples.red_button</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
@ -44,74 +45,627 @@ script.examples as well as commands.examples to make an interactive
button typeclass.</p>
<p>Create this button with</p>
<blockquote>
<div><p>&#64;create/drop examples.red_button.RedButton</p>
<div><p>create/drop red_button.RedButton</p>
</div></blockquote>
<p>Note that you must drop the button before you can see its messages!</p>
<section id="technical">
<h2>Technical<a class="headerlink" href="#technical" title="Permalink to this headline"></a></h2>
<p>The buttons functionality is controlled by CmdSets that gets added and removed
depending on the state the button is in.</p>
<ul class="simple">
<li><p>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.</p></li>
<li><p>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.</p></li>
<li><p>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.</p></li>
</ul>
<p>Timers are handled by persistent delays on the button. These are examples of
<strong>evennia.utils.utils.delay</strong> calls that wait a certain time before calling a method -
such as when closing the lid and un-blinding a character.</p>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">CmdPushLidClosed</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdPushLidClosed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>Push the red button (lid closed)</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>push button</p>
</dd>
</dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.key">
<code class="sig-name descname">key</code><em class="property"> = 'push button'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['press button', 'press', 'push']</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdPushLidClosed.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.func" title="Permalink to this definition"></a></dt>
<dd><p>This is the version of push used when the lid is closed.</p>
<p>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.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'press button press push', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidClosed.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdNudge">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">CmdNudge</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdNudge"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdNudge" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>Try to nudge the buttons lid.</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>nudge lid</p>
</dd>
</dl>
<p>This command will have you try to push the lid of the button away.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdNudge.key">
<code class="sig-name descname">key</code><em class="property"> = 'nudge lid'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdNudge.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdNudge.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['nudge']</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdNudge.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdNudge.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdNudge.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdNudge.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdNudge.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdNudge.func" title="Permalink to this definition"></a></dt>
<dd><p>Nudge the lid. Random chance of success to open it.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdNudge.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdNudge.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdNudge.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdNudge.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdNudge.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'nudge', 'category': 'general', 'key': 'nudge lid', 'tags': '', 'text': &quot;\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 &quot;}</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdNudge.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdSmashGlass">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">CmdSmashGlass</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdSmashGlass"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdSmashGlass" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>Smash the protective glass.</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>smash glass</p>
</dd>
</dl>
<p>Try to smash the glass of the button.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.key">
<code class="sig-name descname">key</code><em class="property"> = 'smash glass'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['break lid', 'smash lid', 'smash']</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdSmashGlass.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.func" title="Permalink to this definition"></a></dt>
<dd><p>The lid wont open, but there is a small chance of causing the lamp to
break.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'break lid smash lid smash', '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 '}</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdSmashGlass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdOpenLid">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">CmdOpenLid</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdOpenLid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdOpenLid" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>open lid</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>open lid</p>
</dd>
</dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdOpenLid.key">
<code class="sig-name descname">key</code><em class="property"> = 'open lid'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdOpenLid.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdOpenLid.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['open button']</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdOpenLid.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdOpenLid.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdOpenLid.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdOpenLid.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdOpenLid.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdOpenLid.func" title="Permalink to this definition"></a></dt>
<dd><p>simply call the right function.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdOpenLid.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdOpenLid.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdOpenLid.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdOpenLid.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdOpenLid.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'open button', 'category': 'general', 'key': 'open lid', 'tags': '', 'text': '\n open lid\n\n Usage:\n open lid\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdOpenLid.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">LidClosedCmdSet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdsetobj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">key</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#LidClosedCmdSet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.cmdset.html#evennia.commands.cmdset.CmdSet" title="evennia.commands.cmdset.CmdSet"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.cmdset.CmdSet</span></code></a></p>
<p>A simple cmdset tied to the redbutton object.</p>
<p>It contains the commands that launches the other
command sets, making the red button a self-contained
item (i.e. you dont have to manually add any
scripts etc to it when creating it).</p>
<p>Note that this is given with a <strong>key_mergetype</strong> set. This
is set up so that the cmdset with merge with Union merge type
<em>except</em> if the other cmdset to merge with is LidOpenCmdSet,
in which case it will Replace that. So these two cmdsets will
be mutually exclusive.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet.key">
<code class="sig-name descname">key</code><em class="property"> = 'LidClosedCmdSet'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet.at_cmdset_creation">
<code class="sig-name descname">at_cmdset_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#LidClosedCmdSet.at_cmdset_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet.at_cmdset_creation" title="Permalink to this definition"></a></dt>
<dd><p>Populates the cmdset when it is instantiated.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.LidClosedCmdSet.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">CmdPushLidOpen</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdPushLidOpen"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>Push the red button</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>push button</p>
</dd>
</dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.key">
<code class="sig-name descname">key</code><em class="property"> = 'push button'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['press button', 'press', 'push']</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.func" title="Permalink to this definition"></a></dt>
<dd><p>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())</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'press button press push', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdPushLidOpen.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdCloseLid">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">CmdCloseLid</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdCloseLid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdCloseLid" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>Close the lid</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>close lid</p>
</dd>
</dl>
<p>Closes the lid of the red button.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdCloseLid.key">
<code class="sig-name descname">key</code><em class="property"> = 'close lid'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdCloseLid.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdCloseLid.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['close']</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdCloseLid.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdCloseLid.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdCloseLid.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdCloseLid.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdCloseLid.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdCloseLid.func" title="Permalink to this definition"></a></dt>
<dd><p>Close the lid</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdCloseLid.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdCloseLid.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdCloseLid.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdCloseLid.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdCloseLid.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'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 '}</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdCloseLid.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">LidOpenCmdSet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdsetobj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">key</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#LidOpenCmdSet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.cmdset.html#evennia.commands.cmdset.CmdSet" title="evennia.commands.cmdset.CmdSet"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.cmdset.CmdSet</span></code></a></p>
<p>This is the opposite of the Closed cmdset.</p>
<p>Note that this is given with a <strong>key_mergetype</strong> set. This
is set up so that the cmdset with merge with Union merge type
<em>except</em> if the other cmdset to merge with is LidClosedCmdSet,
in which case it will Replace that. So these two cmdsets will
be mutually exclusive.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet.key">
<code class="sig-name descname">key</code><em class="property"> = 'LidOpenCmdSet'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet.at_cmdset_creation">
<code class="sig-name descname">at_cmdset_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#LidOpenCmdSet.at_cmdset_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet.at_cmdset_creation" title="Permalink to this definition"></a></dt>
<dd><p>Setup the cmdset</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.LidOpenCmdSet.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindLook">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">CmdBlindLook</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdBlindLook"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindLook" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>Looking around in darkness</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>look &lt;obj&gt;</p>
</dd>
</dl>
<p>… not that theres much to see in the dark.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindLook.key">
<code class="sig-name descname">key</code><em class="property"> = 'look'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindLook.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindLook.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['listen', 'get', 'feel', 'l', 'ex', 'examine']</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindLook.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindLook.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindLook.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindLook.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdBlindLook.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindLook.func" title="Permalink to this definition"></a></dt>
<dd><p>This replaces all the senses when blinded.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindLook.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindLook.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindLook.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindLook.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindLook.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'listen get feel l ex examine', 'category': 'general', 'key': 'look', 'tags': '', 'text': &quot;\n Looking around in darkness\n\n Usage:\n look &lt;obj&gt;\n\n ... not that there's much to see in the dark.\n\n &quot;}</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindLook.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindHelp">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">CmdBlindHelp</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdBlindHelp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindHelp" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>Help function while in the blinded state</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>help</p>
</dd>
</dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.key">
<code class="sig-name descname">key</code><em class="property"> = 'help'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['h']</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#CmdBlindHelp.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.func" title="Permalink to this definition"></a></dt>
<dd><p>Just give a message while blinded. We could have added this to the
CmdBlindLook command too if we wanted to keep things more compact.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'h', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n Help function while in the blinded state\n\n Usage:\n help\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.CmdBlindHelp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.BlindCmdSet">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">BlindCmdSet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdsetobj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">key</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#BlindCmdSet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.BlindCmdSet" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.cmdset.html#evennia.commands.cmdset.CmdSet" title="evennia.commands.cmdset.CmdSet"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.cmdset.CmdSet</span></code></a></p>
<p>This is the cmdset added to the <em>account</em> when
the button is pushed.</p>
<p>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.</p>
<p>We also disable all exit-commands generated by exits and
object-interactions while blinded by setting <strong>no_exits</strong> and <strong>no_objs</strong> 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.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.BlindCmdSet.key">
<code class="sig-name descname">key</code><em class="property"> = 'BlindCmdSet'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.BlindCmdSet.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.BlindCmdSet.mergetype">
<code class="sig-name descname">mergetype</code><em class="property"> = 'Replace'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.BlindCmdSet.mergetype" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.BlindCmdSet.no_exits">
<code class="sig-name descname">no_exits</code><em class="property"> = True</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.BlindCmdSet.no_exits" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.BlindCmdSet.no_objs">
<code class="sig-name descname">no_objs</code><em class="property"> = True</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.BlindCmdSet.no_objs" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.BlindCmdSet.at_cmdset_creation">
<code class="sig-name descname">at_cmdset_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#BlindCmdSet.at_cmdset_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.BlindCmdSet.at_cmdset_creation" title="Permalink to this definition"></a></dt>
<dd><p>Setup the blind cmdset</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.BlindCmdSet.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.tutorial_examples.red_button.BlindCmdSet'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.BlindCmdSet.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorial_examples.red_button.</code><code class="sig-name descname">RedButton</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
<p>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.</p>
<dl class="simple">
<dt>The following attributes can be set on the button:</dt><dd><p>desc_lid_open - description when lid is open
desc_lid_closed - description when lid is closed
desc_lamp_broken - description when lamp is broken</p>
</dd>
</dl>
<p>This class describes an evil red button. It will blink invitingly and
temporarily blind whomever presses it.</p>
<p>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.</p>
<p>Attributes:
- <strong>desc_closed_lid</strong>: This is the description to show of the button</p>
<blockquote>
<div><p>when the lid is closed.</p>
</div></blockquote>
<ul class="simple">
<li><p><strong>desc_open_lid</strong>”: Shown when the lid is open</p></li>
<li><p><strong>auto_close_msg</strong>: Message to show when lid auto-closes</p></li>
<li><p><strong>desc_add_lamp_broken</strong>: Extra desc-line added after normal desc when lamp
is broken.</p></li>
<li><p>blink_msg: A list of strings to randomly choose from when the lamp
blinks.</p></li>
</ul>
<p>Notes:
The button starts with lid closed. To set the initial description,
you can either set desc after creating it or pass a <strong>desc</strong> attribute
when creating it, such as
<strong>button = create_object(RedButton, …, attributes=[(desc, my desc)])</strong>.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.desc_closed_lid">
<code class="sig-name descname">desc_closed_lid</code><em class="property"> = 'This is a large red button, inviting yet evil-looking. A closed glass lid protects it.'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.desc_closed_lid" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.desc_open_lid">
<code class="sig-name descname">desc_open_lid</code><em class="property"> = 'This is a large red button, inviting yet evil-looking. Its glass cover is open and the button exposed.'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.desc_open_lid" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.auto_close_msg">
<code class="sig-name descname">auto_close_msg</code><em class="property"> = &quot;The button's glass lid silently slides back in place.&quot;</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.auto_close_msg" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.lamp_breaks_msg">
<code class="sig-name descname">lamp_breaks_msg</code><em class="property"> = 'The lamp flickers, the button going dark.'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.lamp_breaks_msg" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.desc_add_lamp_broken">
<code class="sig-name descname">desc_add_lamp_broken</code><em class="property"> = '\nThe big red button has stopped blinking for the time being.'</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.desc_add_lamp_broken" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.blink_msgs">
<code class="sig-name descname">blink_msgs</code><em class="property"> = ['The red button flashes briefly.', 'The red button blinks invitingly.', 'The red button flashes. You know you wanna push it!']</em><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.blink_msgs" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.at_object_creation">
<code class="sig-name descname">at_object_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton.at_object_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.at_object_creation" title="Permalink to this definition"></a></dt>
<dd><p>This function is called when object is created. Use this
instead of e.g. __init__.</p>
<dd><p>This function is called (once) when object is created.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.open_lid">
<code class="sig-name descname">open_lid</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton.open_lid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.open_lid" title="Permalink to this definition"></a></dt>
<dd><p>Opens the glass lid and start the timer so it will soon close
again.</p>
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.to_closed_state">
<code class="sig-name descname">to_closed_state</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton.to_closed_state"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.to_closed_state" title="Permalink to this definition"></a></dt>
<dd><p>Switches the button to having its lid closed.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>msg</strong> (<em>str</em><em>, </em><em>optional</em>) If given, display a message to the room</p></li>
<li><p><strong>lid closes.</strong> (<em>when</em>) </p></li>
</ul>
</dd>
</dl>
<p>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).</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.close_lid">
<code class="sig-name descname">close_lid</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton.close_lid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.close_lid" title="Permalink to this definition"></a></dt>
<dd><p>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.</p>
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.to_open_state">
<code class="sig-name descname">to_open_state</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton.to_open_state"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.to_open_state" title="Permalink to this definition"></a></dt>
<dd><p>Switches the button to having its lid open. This also starts a timer
that will eventually close it again.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.blind_target">
<code class="sig-name descname">blind_target</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">caller</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton.blind_target"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.blind_target" title="Permalink to this definition"></a></dt>
<dd><p>Someone was foolish enough to press the button! Blind them
temporarily.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>caller</strong> (<em>Object</em>) The one to be blinded.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.break_lamp">
<code class="sig-name descname">break_lamp</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">feedback</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton.break_lamp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.break_lamp" title="Permalink to this definition"></a></dt>
<dd><p>Breaks the lamp in the button, stopping it from blinking.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>feedback</strong> (<em>bool</em>) Show a message about breaking the lamp.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.press_button">
<code class="sig-name descname">press_button</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pobject</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton.press_button"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.press_button" title="Permalink to this definition"></a></dt>
<dd><p>Someone was foolish enough to press the button!</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>pobject</strong> (<em>Object</em>) The person pressing the button</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorial_examples.red_button.RedButton.blink">
<code class="sig-name descname">blink</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton.blink"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.blink" title="Permalink to this definition"></a></dt>
<dd><p>The script system will regularly call this
function to make the button blink. Now and then
it wont blink at all though, to add some randomness
to how often the message is echoed.</p>
<code class="sig-name descname">break_lamp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorial_examples/red_button.html#RedButton.break_lamp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorial_examples.red_button.RedButton.break_lamp" title="Permalink to this definition"></a></dt>
<dd><p>Breaks the lamp in the button, stopping it from blinking for a while</p>
</dd></dl>
<dl class="py exception">
@ -138,6 +692,7 @@ to how often the message is echoed.</p>
</dd></dl>
</section>
</section>
@ -160,6 +715,14 @@ to how often the message is echoed.</p>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<p><h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.contrib.tutorial_examples.red_button</a><ul>
<li><a class="reference internal" href="#technical">Technical</a></li>
</ul>
</li>
</ul>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
@ -183,7 +746,6 @@ to how often the message is echoed.</p>
<li><a href="../../0.9.5/api/evennia.contrib.tutorial_examples.red_button.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
@ -200,6 +762,7 @@ to how often the message is echoed.</p>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorial_examples.red_button</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.

Some files were not shown because too many files have changed in this diff Show more