mirror of
https://github.com/evennia/evennia.git
synced 2026-03-18 22:06:30 +01:00
1849 lines
No EOL
125 KiB
HTML
1849 lines
No EOL
125 KiB
HTML
|
||
<!DOCTYPE html>
|
||
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<title>evennia.scripts package — Evennia 1.0-dev documentation</title>
|
||
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
|
||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||
<script src="../_static/jquery.js"></script>
|
||
<script src="../_static/underscore.js"></script>
|
||
<script src="../_static/doctools.js"></script>
|
||
<script src="../_static/language_data.js"></script>
|
||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||
<link rel="index" title="Index" href="../genindex.html" />
|
||
<link rel="search" title="Search" href="../search.html" />
|
||
</head><body>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
accesskey="I">index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev documentation</a> »</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<div class="section" id="module-evennia.scripts">
|
||
<span id="evennia-scripts-package"></span><h1>evennia.scripts package<a class="headerlink" href="#module-evennia.scripts" title="Permalink to this headline">¶</a></h1>
|
||
<p>This sub-package holds the Scripts system. Scripts are database
|
||
entities that can store data both in connection to Objects and Accounts
|
||
or globally. They may also have a timer-component to execute various
|
||
timed effects.</p>
|
||
<div class="section" id="subpackages">
|
||
<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2>
|
||
<div class="toctree-wrapper compound">
|
||
</div>
|
||
</div>
|
||
<div class="section" id="submodules">
|
||
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
|
||
</div>
|
||
<div class="section" id="module-evennia.scripts.admin">
|
||
<span id="evennia-scripts-admin-module"></span><h2>evennia.scripts.admin module<a class="headerlink" href="#module-evennia.scripts.admin" title="Permalink to this headline">¶</a></h2>
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.admin.ScriptAttributeInline">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.admin.</code><code class="sig-name descname">ScriptAttributeInline</code><span class="sig-paren">(</span><em class="sig-param">parent_model</em>, <em class="sig-param">admin_site</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/admin.html#ScriptAttributeInline"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.admin.ScriptAttributeInline" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.html#evennia.typeclasses.admin.AttributeInline" title="evennia.typeclasses.admin.AttributeInline"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.typeclasses.admin.AttributeInline</span></code></a></p>
|
||
<p>Inline attribute tags.</p>
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.admin.ScriptAttributeInline.media">
|
||
<em class="property">property </em><code class="sig-name descname">media</code><a class="headerlink" href="#evennia.scripts.admin.ScriptAttributeInline.media" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptAttributeInline.model">
|
||
<code class="sig-name descname">model</code><a class="headerlink" href="#evennia.scripts.admin.ScriptAttributeInline.model" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.models.ScriptDB_db_attributes</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptAttributeInline.related_field">
|
||
<code class="sig-name descname">related_field</code><em class="property"> = 'scriptdb'</em><a class="headerlink" href="#evennia.scripts.admin.ScriptAttributeInline.related_field" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.admin.</code><code class="sig-name descname">ScriptDBAdmin</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">admin_site</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/admin.html#ScriptDBAdmin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.contrib.admin.options.ModelAdmin</span></code></p>
|
||
<p>Displaying the main Script page.</p>
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.fieldsets">
|
||
<code class="sig-name descname">fieldsets</code><em class="property"> = ((None, {'fields': (('db_key', 'db_typeclass_path'), 'db_interval', 'db_repeats', 'db_start_delay', 'db_persistent', 'db_obj')}),)</em><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.fieldsets" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.inlines">
|
||
<code class="sig-name descname">inlines</code><em class="property"> = [<class 'evennia.scripts.admin.ScriptTagInline'>, <class 'evennia.scripts.admin.ScriptAttributeInline'>]</em><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.inlines" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.list_display">
|
||
<code class="sig-name descname">list_display</code><em class="property"> = ('id', 'db_key', 'db_typeclass_path', 'db_obj', 'db_interval', 'db_repeats', 'db_persistent')</em><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.list_display" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.list_display_links">
|
||
<code class="sig-name descname">list_display_links</code><em class="property"> = ('id', 'db_key')</em><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.list_display_links" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.list_select_related">
|
||
<code class="sig-name descname">list_select_related</code><em class="property"> = True</em><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.list_select_related" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.media">
|
||
<em class="property">property </em><code class="sig-name descname">media</code><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.media" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.ordering">
|
||
<code class="sig-name descname">ordering</code><em class="property"> = ['db_obj', 'db_typeclass_path']</em><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.ordering" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.raw_id_fields">
|
||
<code class="sig-name descname">raw_id_fields</code><em class="property"> = ('db_obj',)</em><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.raw_id_fields" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.save_as">
|
||
<code class="sig-name descname">save_as</code><em class="property"> = True</em><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.save_as" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.save_model">
|
||
<code class="sig-name descname">save_model</code><span class="sig-paren">(</span><em class="sig-param">request</em>, <em class="sig-param">obj</em>, <em class="sig-param">form</em>, <em class="sig-param">change</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/admin.html#ScriptDBAdmin.save_model"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.save_model" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Model-save hook.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>request</strong> (<em>Request</em>) – Incoming request.</p></li>
|
||
<li><p><strong>obj</strong> (<em>Object</em>) – Database object.</p></li>
|
||
<li><p><strong>form</strong> (<em>Form</em>) – Form instance.</p></li>
|
||
<li><p><strong>change</strong> (<em>bool</em>) – If this is a change or a new object.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.save_on_top">
|
||
<code class="sig-name descname">save_on_top</code><em class="property"> = True</em><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.save_on_top" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptDBAdmin.search_fields">
|
||
<code class="sig-name descname">search_fields</code><em class="property"> = ['^db_key', 'db_typeclass_path']</em><a class="headerlink" href="#evennia.scripts.admin.ScriptDBAdmin.search_fields" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.admin.ScriptTagInline">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.admin.</code><code class="sig-name descname">ScriptTagInline</code><span class="sig-paren">(</span><em class="sig-param">parent_model</em>, <em class="sig-param">admin_site</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/admin.html#ScriptTagInline"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.admin.ScriptTagInline" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.html#evennia.typeclasses.admin.TagInline" title="evennia.typeclasses.admin.TagInline"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.typeclasses.admin.TagInline</span></code></a></p>
|
||
<p>Inline script tags.</p>
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.admin.ScriptTagInline.media">
|
||
<em class="property">property </em><code class="sig-name descname">media</code><a class="headerlink" href="#evennia.scripts.admin.ScriptTagInline.media" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptTagInline.model">
|
||
<code class="sig-name descname">model</code><a class="headerlink" href="#evennia.scripts.admin.ScriptTagInline.model" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.models.ScriptDB_db_tags</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.admin.ScriptTagInline.related_field">
|
||
<code class="sig-name descname">related_field</code><em class="property"> = 'scriptdb'</em><a class="headerlink" href="#evennia.scripts.admin.ScriptTagInline.related_field" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="module-evennia.scripts.manager">
|
||
<span id="evennia-scripts-manager-module"></span><h2>evennia.scripts.manager module<a class="headerlink" href="#module-evennia.scripts.manager" title="Permalink to this headline">¶</a></h2>
|
||
<p>The custom manager for Scripts.</p>
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.manager.ScriptManager">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.manager.</code><code class="sig-name descname">ScriptManager</code><a class="reference internal" href="../_modules/evennia/scripts/manager.html#ScriptManager"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.manager.ScriptManager" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.manager.ScriptDBManager</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.typeclasses.managers.TypeclassManager</span></code></p>
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="module-evennia.scripts.models">
|
||
<span id="evennia-scripts-models-module"></span><h2>evennia.scripts.models module<a class="headerlink" href="#module-evennia.scripts.models" title="Permalink to this headline">¶</a></h2>
|
||
<p>Scripts are entities that perform some sort of action, either only
|
||
once or repeatedly. They can be directly linked to a particular
|
||
Evennia Object or be stand-alonw (in the latter case it is considered
|
||
a ‘global’ script). Scripts can indicate both actions related to the
|
||
game world as well as pure behind-the-scenes events and effects.
|
||
Everything that has a time component in the game (i.e. is not
|
||
hard-coded at startup or directly created/controlled by players) is
|
||
handled by Scripts.</p>
|
||
<p>Scripts have to check for themselves that they should be applied at a
|
||
particular moment of time; this is handled by the is_valid() hook.
|
||
Scripts can also implement at_start and at_end hooks for preparing and
|
||
cleaning whatever effect they have had on the game object.</p>
|
||
<p>Common examples of uses of Scripts:</p>
|
||
<ul class="simple">
|
||
<li><p>Load the default cmdset to the account object’s cmdhandler
|
||
when logging in.</p></li>
|
||
<li><p>Switch to a different state, such as entering a text editor,
|
||
start combat or enter a dark room.</p></li>
|
||
<li><p>Merge a new cmdset with the default one for changing which
|
||
commands are available at a particular time</p></li>
|
||
<li><p>Give the account/object a time-limited bonus/effect</p></li>
|
||
</ul>
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.models.ScriptDB">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.models.</code><code class="sig-name descname">ScriptDB</code><span class="sig-paren">(</span><em class="sig-param">*args</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/models.html#ScriptDB"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.models.ScriptDB" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.html#evennia.typeclasses.models.TypedObject" title="evennia.typeclasses.models.TypedObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.typeclasses.models.TypedObject</span></code></a></p>
|
||
<p>The Script database representation.</p>
|
||
<dl class="simple">
|
||
<dt>The TypedObject supplies the following (inherited) properties:</dt><dd><p>key - main name
|
||
name - alias for key
|
||
typeclass_path - the path to the decorating typeclass
|
||
typeclass - auto-linked typeclass
|
||
date_created - time stamp of object creation
|
||
permissions - perm strings
|
||
dbref - #id of object
|
||
db - persistent attribute storage
|
||
ndb - non-persistent attribute storage</p>
|
||
</dd>
|
||
<dt>The ScriptDB adds the following properties:</dt><dd><p>desc - optional description of script
|
||
obj - the object the script is linked to, if any
|
||
account - the account the script is linked to (exclusive with obj)
|
||
interval - how often script should run
|
||
start_delay - if the script should start repeating right away
|
||
repeats - how many times the script should repeat
|
||
persistent - if script should survive a server reboot
|
||
is_active - bool if script is currently running</p>
|
||
</dd>
|
||
</dl>
|
||
<dl class="exception">
|
||
<dt id="evennia.scripts.models.ScriptDB.DoesNotExist">
|
||
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.DoesNotExist" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.core.exceptions.ObjectDoesNotExist</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="evennia.scripts.models.ScriptDB.MultipleObjectsReturned">
|
||
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.MultipleObjectsReturned" title="Permalink to this definition">¶</a></dt>
|
||
<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="method">
|
||
<dt id="evennia.scripts.models.ScriptDB._ScriptDB__get_obj">
|
||
<code class="sig-name descname">_ScriptDB__get_obj</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.models.ScriptDB._ScriptDB__get_obj" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Property wrapper that homogenizes access to either the
|
||
db_account or db_obj field, using the same object property
|
||
name.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB._ScriptDB__set_obj">
|
||
<code class="sig-name descname">_ScriptDB__set_obj</code><span class="sig-paren">(</span><em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.models.ScriptDB._ScriptDB__set_obj" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set account or obj to their right database field. If
|
||
a dbref is given, assume ObjectDB.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB._is_deleted">
|
||
<code class="sig-name descname">_is_deleted</code><em class="property"> = False</em><a class="headerlink" href="#evennia.scripts.models.ScriptDB._is_deleted" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB._meta">
|
||
<code class="sig-name descname">_meta</code><em class="property"> = <Options for ScriptDB></em><a class="headerlink" href="#evennia.scripts.models.ScriptDB._meta" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.account">
|
||
<em class="property">property </em><code class="sig-name descname">account</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.account" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <cite>db_account</cite>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_account">
|
||
<code class="sig-name descname">db_account</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_account" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related object on the forward side of a many-to-one or
|
||
one-to-one (via ForwardOneToOneDescriptor subclass) 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">Child</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">parent</span> <span class="o">=</span> <span class="n">ForeignKey</span><span class="p">(</span><span class="n">Parent</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'children'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">Child.parent</span></code> is a <code class="docutils literal notranslate"><span class="pre">ForwardManyToOneDescriptor</span></code> instance.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_account_id">
|
||
<code class="sig-name descname">db_account_id</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_account_id" 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="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_attributes">
|
||
<code class="sig-name descname">db_attributes</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_attributes" 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">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">Pizza.toppings</span></code> and <code class="docutils literal notranslate"><span class="pre">Topping.pizzas</span></code> are <code class="docutils literal notranslate"><span class="pre">ManyToManyDescriptor</span></code>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <code class="docutils literal notranslate"><span class="pre">create_forward_many_to_many_manager()</span></code> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_desc">
|
||
<code class="sig-name descname">db_desc</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_desc" 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="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_interval">
|
||
<code class="sig-name descname">db_interval</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_interval" 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="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_is_active">
|
||
<code class="sig-name descname">db_is_active</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_is_active" 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="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_obj">
|
||
<code class="sig-name descname">db_obj</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_obj" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related object on the forward side of a many-to-one or
|
||
one-to-one (via ForwardOneToOneDescriptor subclass) 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">Child</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">parent</span> <span class="o">=</span> <span class="n">ForeignKey</span><span class="p">(</span><span class="n">Parent</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'children'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">Child.parent</span></code> is a <code class="docutils literal notranslate"><span class="pre">ForwardManyToOneDescriptor</span></code> instance.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_obj_id">
|
||
<code class="sig-name descname">db_obj_id</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_obj_id" 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="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_persistent">
|
||
<code class="sig-name descname">db_persistent</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_persistent" 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="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_repeats">
|
||
<code class="sig-name descname">db_repeats</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_repeats" 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="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_start_delay">
|
||
<code class="sig-name descname">db_start_delay</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_start_delay" 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="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.db_tags">
|
||
<code class="sig-name descname">db_tags</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.db_tags" 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">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">Pizza.toppings</span></code> and <code class="docutils literal notranslate"><span class="pre">Topping.pizzas</span></code> are <code class="docutils literal notranslate"><span class="pre">ManyToManyDescriptor</span></code>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <code class="docutils literal notranslate"><span class="pre">create_forward_many_to_many_manager()</span></code> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.desc">
|
||
<em class="property">property </em><code class="sig-name descname">desc</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.desc" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <cite>db_desc</cite>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.get_next_by_db_date_created">
|
||
<code class="sig-name descname">get_next_by_db_date_created</code><span class="sig-paren">(</span><em class="sig-param">*</em>, <em class="sig-param">field=<django.db.models.fields.DateTimeField: db_date_created></em>, <em class="sig-param">is_next=True</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.models.ScriptDB.get_next_by_db_date_created" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.get_previous_by_db_date_created">
|
||
<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=<django.db.models.fields.DateTimeField: db_date_created></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.scripts.models.ScriptDB.get_previous_by_db_date_created" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.id">
|
||
<code class="sig-name descname">id</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.id" 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="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.interval">
|
||
<em class="property">property </em><code class="sig-name descname">interval</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.interval" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <cite>db_interval</cite>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.is_active">
|
||
<em class="property">property </em><code class="sig-name descname">is_active</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.is_active" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <cite>db_is_active</cite>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.obj">
|
||
<em class="property">property </em><code class="sig-name descname">obj</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.obj" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Property wrapper that homogenizes access to either the
|
||
db_account or db_obj field, using the same object property
|
||
name.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.object">
|
||
<em class="property">property </em><code class="sig-name descname">object</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.object" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Property wrapper that homogenizes access to either the
|
||
db_account or db_obj field, using the same object property
|
||
name.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.objects">
|
||
<code class="sig-name descname">objects</code><em class="property"> = <evennia.scripts.manager.ScriptDBManager object></em><a class="headerlink" href="#evennia.scripts.models.ScriptDB.objects" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.path">
|
||
<code class="sig-name descname">path</code><em class="property"> = 'evennia.scripts.models.ScriptDB'</em><a class="headerlink" href="#evennia.scripts.models.ScriptDB.path" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.persistent">
|
||
<em class="property">property </em><code class="sig-name descname">persistent</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.persistent" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <cite>db_persistent</cite>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.receiver_script_set">
|
||
<code class="sig-name descname">receiver_script_set</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.receiver_script_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">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">Pizza.toppings</span></code> and <code class="docutils literal notranslate"><span class="pre">Topping.pizzas</span></code> are <code class="docutils literal notranslate"><span class="pre">ManyToManyDescriptor</span></code>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <code class="docutils literal notranslate"><span class="pre">create_forward_many_to_many_manager()</span></code> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.repeats">
|
||
<em class="property">property </em><code class="sig-name descname">repeats</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.repeats" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <cite>db_repeats</cite>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.sender_script_set">
|
||
<code class="sig-name descname">sender_script_set</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.sender_script_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">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">Pizza.toppings</span></code> and <code class="docutils literal notranslate"><span class="pre">Topping.pizzas</span></code> are <code class="docutils literal notranslate"><span class="pre">ManyToManyDescriptor</span></code>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <code class="docutils literal notranslate"><span class="pre">create_forward_many_to_many_manager()</span></code> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.models.ScriptDB.start_delay">
|
||
<em class="property">property </em><code class="sig-name descname">start_delay</code><a class="headerlink" href="#evennia.scripts.models.ScriptDB.start_delay" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <cite>db_start_delay</cite>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.models.ScriptDB.typename">
|
||
<code class="sig-name descname">typename</code><em class="property"> = 'SharedMemoryModelBase'</em><a class="headerlink" href="#evennia.scripts.models.ScriptDB.typename" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="module-evennia.scripts.monitorhandler">
|
||
<span id="evennia-scripts-monitorhandler-module"></span><h2>evennia.scripts.monitorhandler module<a class="headerlink" href="#module-evennia.scripts.monitorhandler" title="Permalink to this headline">¶</a></h2>
|
||
<p>Monitors - catch changes to model fields and Attributes.</p>
|
||
<p>The MONITOR_HANDLER singleton from this module offers the following
|
||
functionality:</p>
|
||
<ul class="simple">
|
||
<li><dl class="simple">
|
||
<dt>Field-monitor - track a object’s specific database field and perform</dt><dd><p>an action whenever that field <em>changes</em> for whatever reason.</p>
|
||
</dd>
|
||
</dl>
|
||
</li>
|
||
<li><dl class="simple">
|
||
<dt>Attribute-monitor tracks an object’s specific Attribute and perform</dt><dd><p>an action whenever that Attribute <em>changes</em> for whatever reason.</p>
|
||
</dd>
|
||
</dl>
|
||
</li>
|
||
</ul>
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.monitorhandler.MonitorHandler">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.monitorhandler.</code><code class="sig-name descname">MonitorHandler</code><a class="reference internal" href="../_modules/evennia/scripts/monitorhandler.html#MonitorHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.monitorhandler.MonitorHandler" 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 resource singleton that allows for registering
|
||
callbacks for when a field or Attribute is updated (saved).</p>
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.monitorhandler.MonitorHandler.__init__">
|
||
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/monitorhandler.html#MonitorHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.monitorhandler.MonitorHandler.__init__" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Initialize the handler.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.monitorhandler.MonitorHandler.add">
|
||
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param">obj</em>, <em class="sig-param">fieldname</em>, <em class="sig-param">callback</em>, <em class="sig-param">idstring=''</em>, <em class="sig-param">persistent=False</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/monitorhandler.html#MonitorHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.monitorhandler.MonitorHandler.add" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Add monitoring to a given field or Attribute. A field must
|
||
be specified with the full db_* name or it will be assumed
|
||
to be an Attribute (so <cite>db_key</cite>, not just <cite>key</cite>).</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>Typeclassed Entity</em>) – The entity on which to monitor a
|
||
field or Attribute.</p></li>
|
||
<li><p><strong>fieldname</strong> (<em>str</em>) – Name of field (db_*) or Attribute to monitor.</p></li>
|
||
<li><p><strong>callback</strong> (<em>callable</em>) – A callable on the form <a href="#id1"><span class="problematic" id="id2">`</span></a>callable(<a href="#id3"><span class="problematic" id="id4">**</span></a>kwargs),
|
||
where kwargs holds keys fieldname and obj.</p></li>
|
||
<li><p><strong>idstring</strong> (<em>str</em><em>, </em><em>optional</em>) – An id to separate this monitor from other monitors
|
||
of the same field and object.</p></li>
|
||
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) – If False, the monitor will survive
|
||
a server reload but not a cold restart. This is default.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<dl class="simple">
|
||
<dt>Kwargs:</dt><dd><dl class="simple">
|
||
<dt>session (Session): If this keyword is given, the monitorhandler will</dt><dd><p>correctly analyze it and remove the monitor if after a reload/reboot
|
||
the session is no longer valid.</p>
|
||
</dd>
|
||
<dt>any (any): Any other kwargs are passed on to the callback. Remember that</dt><dd><p>all kwargs must be possible to pickle!</p>
|
||
</dd>
|
||
</dl>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.monitorhandler.MonitorHandler.all">
|
||
<code class="sig-name descname">all</code><span class="sig-paren">(</span><em class="sig-param">obj=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/monitorhandler.html#MonitorHandler.all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.monitorhandler.MonitorHandler.all" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>List all monitors or all monitors of a given object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) – The object on which to list all monitors.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p>The handled monitors.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>monitors (list)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.monitorhandler.MonitorHandler.at_update">
|
||
<code class="sig-name descname">at_update</code><span class="sig-paren">(</span><em class="sig-param">obj</em>, <em class="sig-param">fieldname</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/monitorhandler.html#MonitorHandler.at_update"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.monitorhandler.MonitorHandler.at_update" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Called by the field as it saves.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.monitorhandler.MonitorHandler.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/scripts/monitorhandler.html#MonitorHandler.clear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.monitorhandler.MonitorHandler.clear" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Delete all monitors.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.monitorhandler.MonitorHandler.remove">
|
||
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param">obj</em>, <em class="sig-param">fieldname</em>, <em class="sig-param">idstring=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/monitorhandler.html#MonitorHandler.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.monitorhandler.MonitorHandler.remove" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Remove a monitor.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.monitorhandler.MonitorHandler.restore">
|
||
<code class="sig-name descname">restore</code><span class="sig-paren">(</span><em class="sig-param">server_reload=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/monitorhandler.html#MonitorHandler.restore"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.monitorhandler.MonitorHandler.restore" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Restore our monitors after a reload. This is called
|
||
by the server process.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>server_reload</strong> (<em>bool</em><em>, </em><em>optional</em>) – If this is False, it means
|
||
the server went through a cold reboot and all
|
||
non-persistent tickers must be killed.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.monitorhandler.MonitorHandler.save">
|
||
<code class="sig-name descname">save</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/monitorhandler.html#MonitorHandler.save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.monitorhandler.MonitorHandler.save" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Store our monitors to the database. This is called
|
||
by the server process.</p>
|
||
<p>Since dbserialize can’t handle defaultdicts, we convert to an
|
||
intermediary save format ((obj,fieldname, idstring, callback, kwargs), …)</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="evennia.scripts.monitorhandler._DA">
|
||
<code class="sig-prename descclassname">evennia.scripts.monitorhandler.</code><code class="sig-name descname">_DA</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.monitorhandler._DA" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Implement delattr(self, name).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="evennia.scripts.monitorhandler._GA">
|
||
<code class="sig-prename descclassname">evennia.scripts.monitorhandler.</code><code class="sig-name descname">_GA</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.monitorhandler._GA" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Return getattr(self, name).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="evennia.scripts.monitorhandler._SA">
|
||
<code class="sig-prename descclassname">evennia.scripts.monitorhandler.</code><code class="sig-name descname">_SA</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.monitorhandler._SA" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Implement setattr(self, name, value).</p>
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="module-evennia.scripts.scripthandler">
|
||
<span id="evennia-scripts-scripthandler-module"></span><h2>evennia.scripts.scripthandler module<a class="headerlink" href="#module-evennia.scripts.scripthandler" title="Permalink to this headline">¶</a></h2>
|
||
<p>The script handler makes sure to check through all stored scripts to
|
||
make sure they are still relevant. A scripthandler is automatically
|
||
added to all game objects. You access it through the property
|
||
<cite>scripts</cite> on the game object.</p>
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.scripthandler.ScriptHandler">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.scripthandler.</code><code class="sig-name descname">ScriptHandler</code><span class="sig-paren">(</span><em class="sig-param">obj</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler" 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>Implements the handler. This sits on each game object.</p>
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripthandler.ScriptHandler.__init__">
|
||
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param">obj</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.__init__" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set up internal state.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) – A reference to the object this handler is
|
||
attached to.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripthandler.ScriptHandler.add">
|
||
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param">scriptclass</em>, <em class="sig-param">key=None</em>, <em class="sig-param">autostart=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.add" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Add a script to this object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>scriptclass</strong> (<em>Scriptclass</em><em>, </em><em>Script</em><em> or </em><em>str</em>) – Either a class
|
||
object inheriting from DefaultScript, an instantiated
|
||
script object or a python path to such a class object.</p></li>
|
||
<li><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) – Identifier for the script (often set
|
||
in script definition and listings)</p></li>
|
||
<li><p><strong>autostart</strong> (<em>bool</em><em>, </em><em>optional</em>) – Start the script upon adding it.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripthandler.ScriptHandler.all">
|
||
<code class="sig-name descname">all</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.all" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Get all scripts stored in this handler.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripthandler.ScriptHandler.delete">
|
||
<code class="sig-name descname">delete</code><span class="sig-paren">(</span><em class="sig-param">key=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.delete" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Forcibly delete a script from this object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) – A script key or the path to a script (in the
|
||
latter case all scripts with this path will be deleted!)
|
||
If no key is given, delete <em>all</em> scripts on the object!</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripthandler.ScriptHandler.get">
|
||
<code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.get" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Search scripts on this object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>) – Search criterion, the script’s key or dbref.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p>The found scripts matching <cite>key</cite>.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>scripts (list)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripthandler.ScriptHandler.start">
|
||
<code class="sig-name descname">start</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.start" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Find scripts and force-start them</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>) – The script’s key or dbref.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p>The number of started scripts found.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>nr_started (int)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripthandler.ScriptHandler.stop">
|
||
<code class="sig-name descname">stop</code><span class="sig-paren">(</span><em class="sig-param">key=None</em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.stop" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Forcibly delete a script from this object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) – A script key or the path to a script (in the
|
||
latter case all scripts with this path will be deleted!)
|
||
If no key is given, delete <em>all</em> scripts on the object!</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripthandler.ScriptHandler.validate">
|
||
<code class="sig-name descname">validate</code><span class="sig-paren">(</span><em class="sig-param">init_mode=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.validate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.validate" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Runs a validation on this object’s scripts only. This should
|
||
be called regularly to crank the wheels.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>init_mode</strong> (<em>str</em><em>, </em><em>optional</em>) – <ul class="simple">
|
||
<li><p>This is used during server</p></li>
|
||
</ul>
|
||
<p>upstart and can have three values:
|
||
- <cite>False</cite> (no init mode). Called during run.
|
||
- <cite>“reset”</cite> - server reboot. Kill non-persistent scripts
|
||
- <cite>“reload”</cite> - server reload. Keep non-persistent scripts.</p>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="module-evennia.scripts.scripts">
|
||
<span id="evennia-scripts-scripts-module"></span><h2>evennia.scripts.scripts module<a class="headerlink" href="#module-evennia.scripts.scripts" title="Permalink to this headline">¶</a></h2>
|
||
<p>This module defines Scripts, out-of-character entities that can store
|
||
data both on themselves and on other objects while also having the
|
||
ability to run timers.</p>
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.scripts.DefaultScript">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.scripts.</code><code class="sig-name descname">DefaultScript</code><span class="sig-paren">(</span><em class="sig-param">*args</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.ScriptBase</span></code></p>
|
||
<p>This is the base TypeClass for all Scripts. Scripts describe
|
||
events, timers and states in game, they can have a time component
|
||
or describe a state that changes under certain conditions.</p>
|
||
<dl class="exception">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.DoesNotExist">
|
||
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.DoesNotExist" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.DoesNotExist</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned">
|
||
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.MultipleObjectsReturned</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.scripts.DefaultScript._meta">
|
||
<code class="sig-name descname">_meta</code><em class="property"> = <Options for DefaultScript></em><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript._meta" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.at_idmapper_flush">
|
||
<code class="sig-name descname">at_idmapper_flush</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_idmapper_flush"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.at_idmapper_flush" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>If we’re flushing this object, make sure the LoopingCall is gone too</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.at_repeat">
|
||
<code class="sig-name descname">at_repeat</code><span class="sig-paren">(</span><em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_repeat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.at_repeat" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Called repeatedly if this Script is set to repeat regularly.</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="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.at_script_creation">
|
||
<code class="sig-name descname">at_script_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_script_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.at_script_creation" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Only called once, when script is first created.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.at_server_reload">
|
||
<code class="sig-name descname">at_server_reload</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_server_reload"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.at_server_reload" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>This hook is called whenever the server is shutting down for
|
||
restart/reboot. If you want to, for example, save
|
||
non-persistent properties across a restart, this is the place
|
||
to do it.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.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/scripts/scripts.html#DefaultScript.at_server_shutdown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.at_server_shutdown" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>This hook is called whenever the server is shutting down fully
|
||
(i.e. not for a restart).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.at_start">
|
||
<code class="sig-name descname">at_start</code><span class="sig-paren">(</span><em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.at_start" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Called whenever the script is started, which for persistent
|
||
scripts is at least once every server start. It will also be
|
||
called when starting again after a pause (such as after a
|
||
server reload)</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="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.at_stop">
|
||
<code class="sig-name descname">at_stop</code><span class="sig-paren">(</span><em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.at_stop"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.at_stop" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Called whenever when it’s time for this script to stop (either
|
||
because is_valid returned False or it runs out of iterations)</p>
|
||
<dl class="simple">
|
||
<dt>Args</dt><dd><dl class="simple">
|
||
<dt><a href="#id5"><span class="problematic" id="id6">**</span></a>kwargs (dict): Arbitrary, optional arguments for users</dt><dd><p>overriding the call (unused by default).</p>
|
||
</dd>
|
||
</dl>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.create">
|
||
<em class="property">classmethod </em><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.create" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Provides a passthrough interface to the utils.create_script() function.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>) – Name of the new object.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p>A newly created object of the given typeclass.
|
||
errors (list): A list of errors in string form, if any.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>object (Object)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.force_repeat">
|
||
<code class="sig-name descname">force_repeat</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.force_repeat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.force_repeat" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Fire a premature triggering of the script callback. This
|
||
will reset the timer and count down repeats as if the script
|
||
had fired normally.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.is_valid">
|
||
<code class="sig-name descname">is_valid</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.is_valid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.is_valid" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Is called to check if the script is valid to run at this time.
|
||
Should return a boolean. The method is assumed to collect all
|
||
needed information from its related self.obj.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.path">
|
||
<code class="sig-name descname">path</code><em class="property"> = 'evennia.scripts.scripts.DefaultScript'</em><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.path" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.pause">
|
||
<code class="sig-name descname">pause</code><span class="sig-paren">(</span><em class="sig-param">manual_pause=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.pause"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.pause" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>This stops a running script and stores its active state.
|
||
It WILL NOT call the <cite>at_stop()</cite> hook.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.remaining_repeats">
|
||
<code class="sig-name descname">remaining_repeats</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.remaining_repeats"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.remaining_repeats" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Get the number of returning repeats for limited Scripts.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns</dt>
|
||
<dd class="field-odd"><p><dl class="simple">
|
||
<dt>The number of repeats</dt><dd><p>remaining until the Script stops. Returns <cite>None</cite>
|
||
if it has unlimited repeats.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-even">Return type</dt>
|
||
<dd class="field-even"><p>remaining (int or <cite>None</cite>)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.reset_callcount">
|
||
<code class="sig-name descname">reset_callcount</code><span class="sig-paren">(</span><em class="sig-param">value=0</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.reset_callcount"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.reset_callcount" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Reset the count of the number of calls done.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>value</strong> (<em>int</em><em>, </em><em>optional</em>) – The repeat value to reset to. Default
|
||
is to set it all the way back to 0.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>This is only useful if repeats != 0.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.restart">
|
||
<code class="sig-name descname">restart</code><span class="sig-paren">(</span><em class="sig-param">interval=None</em>, <em class="sig-param">repeats=None</em>, <em class="sig-param">start_delay=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.restart"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.restart" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Restarts an already existing/running Script from the
|
||
beginning, optionally using different settings. This will
|
||
first call the stop hooks, and then the start hooks again.
|
||
:param interval: Allows for changing the interval</p>
|
||
<blockquote>
|
||
<div><p>of the Script. Given in seconds. if <cite>None</cite>, will use the already stored interval.</p>
|
||
</div></blockquote>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>repeats</strong> (<em>int</em><em>, </em><em>optional</em>) – The number of repeats. If unset, will
|
||
use the previous setting.</p></li>
|
||
<li><p><strong>start_delay</strong> (<em>bool</em><em>, </em><em>optional</em>) – If we should wait <cite>interval</cite> seconds
|
||
before starting or not. If <cite>None</cite>, re-use the previous setting.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.start">
|
||
<code class="sig-name descname">start</code><span class="sig-paren">(</span><em class="sig-param">force_restart=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.start" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Called every time the script is started (for persistent
|
||
scripts, this is usually once every server start)</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>force_restart</strong> (<em>bool</em><em>, </em><em>optional</em>) – Normally an already
|
||
started script will not be started again. if
|
||
<cite>force_restart=True</cite>, the script will always restart
|
||
the script, regardless of if it has started before.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p><dl class="simple">
|
||
<dt>0 or 1 depending on if the script successfully</dt><dd><p>started or not. Used in counting.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>result (int)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.stop">
|
||
<code class="sig-name descname">stop</code><span class="sig-paren">(</span><em class="sig-param">kill=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.stop"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.stop" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Called to stop the script from running. This also deletes the
|
||
script.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>kill</strong> (<em>bool</em><em>, </em><em>optional</em>) – <ul class="simple">
|
||
<li><p>Stop the script without</p></li>
|
||
</ul>
|
||
<p>calling any relevant script hooks.</p>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p><dl class="simple">
|
||
<dt>0 if the script failed to stop, 1 otherwise.</dt><dd><p>Used in counting.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>result (int)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.time_until_next_repeat">
|
||
<code class="sig-name descname">time_until_next_repeat</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.time_until_next_repeat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.time_until_next_repeat" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Get time until the script fires it <cite>at_repeat</cite> hook again.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns</dt>
|
||
<dd class="field-odd"><p><dl class="simple">
|
||
<dt>Time in seconds until the script runs again.</dt><dd><p>If not a timed script, return <cite>None</cite>.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-even">Return type</dt>
|
||
<dd class="field-even"><p>next (int)</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>This hook is not used in any way by the script’s stepping
|
||
system; it’s only here for the user to be able to check in
|
||
on their scripts and when they will next be run.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.typename">
|
||
<code class="sig-name descname">typename</code><em class="property"> = 'DefaultScript'</em><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.typename" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DefaultScript.unpause">
|
||
<code class="sig-name descname">unpause</code><span class="sig-paren">(</span><em class="sig-param">manual_unpause=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DefaultScript.unpause"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DefaultScript.unpause" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Restart a paused script. This WILL call the <cite>at_start()</cite> hook.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>manual_unpause</strong> (<em>bool</em><em>, </em><em>optional</em>) – This is False if unpause is
|
||
called by the server reload/reset mechanism.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p>True if unpause was triggered, False otherwise.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>result (bool)</p>
|
||
</dd>
|
||
<dt class="field-even">Raises</dt>
|
||
<dd class="field-even"><p><strong>RuntimeError</strong> – If trying to automatically resart this script
|
||
(usually after a reset/reload), but it was manually paused,
|
||
and so should not the auto-unpaused.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.scripts.DoNothing">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.scripts.</code><code class="sig-name descname">DoNothing</code><span class="sig-paren">(</span><em class="sig-param">*args</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DoNothing"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DoNothing" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="#evennia.scripts.scripts.DefaultScript" title="evennia.scripts.scripts.DefaultScript"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.DefaultScript</span></code></a></p>
|
||
<p>A script that does nothing. Used as default fallback.</p>
|
||
<dl class="exception">
|
||
<dt id="evennia.scripts.scripts.DoNothing.DoesNotExist">
|
||
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.scripts.scripts.DoNothing.DoesNotExist" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.DoesNotExist</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="evennia.scripts.scripts.DoNothing.MultipleObjectsReturned">
|
||
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.scripts.scripts.DoNothing.MultipleObjectsReturned" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.MultipleObjectsReturned</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.scripts.DoNothing._meta">
|
||
<code class="sig-name descname">_meta</code><em class="property"> = <Options for DoNothing></em><a class="headerlink" href="#evennia.scripts.scripts.DoNothing._meta" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.DoNothing.at_script_creation">
|
||
<code class="sig-name descname">at_script_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#DoNothing.at_script_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.DoNothing.at_script_creation" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Setup the script</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.scripts.DoNothing.path">
|
||
<code class="sig-name descname">path</code><em class="property"> = 'evennia.scripts.scripts.DoNothing'</em><a class="headerlink" href="#evennia.scripts.scripts.DoNothing.path" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.scripts.DoNothing.typename">
|
||
<code class="sig-name descname">typename</code><em class="property"> = 'DoNothing'</em><a class="headerlink" href="#evennia.scripts.scripts.DoNothing.typename" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.scripts.Store">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.scripts.</code><code class="sig-name descname">Store</code><span class="sig-paren">(</span><em class="sig-param">*args</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#Store"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.Store" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="#evennia.scripts.scripts.DefaultScript" title="evennia.scripts.scripts.DefaultScript"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.DefaultScript</span></code></a></p>
|
||
<p>Simple storage script</p>
|
||
<dl class="exception">
|
||
<dt id="evennia.scripts.scripts.Store.DoesNotExist">
|
||
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.scripts.scripts.Store.DoesNotExist" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.DoesNotExist</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="evennia.scripts.scripts.Store.MultipleObjectsReturned">
|
||
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.scripts.scripts.Store.MultipleObjectsReturned" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.MultipleObjectsReturned</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.scripts.Store._meta">
|
||
<code class="sig-name descname">_meta</code><em class="property"> = <Options for Store></em><a class="headerlink" href="#evennia.scripts.scripts.Store._meta" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.scripts.Store.at_script_creation">
|
||
<code class="sig-name descname">at_script_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripts.html#Store.at_script_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.scripts.Store.at_script_creation" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Setup the script</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.scripts.Store.path">
|
||
<code class="sig-name descname">path</code><em class="property"> = 'evennia.scripts.scripts.Store'</em><a class="headerlink" href="#evennia.scripts.scripts.Store.path" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.scripts.Store.typename">
|
||
<code class="sig-name descname">typename</code><em class="property"> = 'Store'</em><a class="headerlink" href="#evennia.scripts.scripts.Store.typename" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="module-evennia.scripts.taskhandler">
|
||
<span id="evennia-scripts-taskhandler-module"></span><h2>evennia.scripts.taskhandler module<a class="headerlink" href="#module-evennia.scripts.taskhandler" title="Permalink to this headline">¶</a></h2>
|
||
<p>Module containing the task handler for Evennia deferred tasks, persistent or not.</p>
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.taskhandler.TaskHandler">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.taskhandler.</code><code class="sig-name descname">TaskHandler</code><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler" 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>A light singleton wrapper allowing to access permanent tasks.</p>
|
||
<p>When <cite>utils.delay</cite> is called, the task handler is used to create
|
||
the task. If <cite>utils.delay</cite> is called with <cite>persistent=True</cite>, the
|
||
task handler stores the new task and saves.</p>
|
||
<p>It’s easier to access these tasks (should it be necessary) using
|
||
<cite>evennia.scripts.taskhandler.TASK_HANDLER</cite>, which contains one
|
||
instance of this class, and use its <cite>add</cite> and <cite>remove</cite> methods.</p>
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.taskhandler.TaskHandler.__init__">
|
||
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.__init__" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.taskhandler.TaskHandler.add">
|
||
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param">timedelay</em>, <em class="sig-param">callback</em>, <em class="sig-param">*args</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.add" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Add a new persistent task in the configuration.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>timedelay</strong> (<em>int</em><em> or </em><em>float</em>) – time in sedconds before calling the callback.</p></li>
|
||
<li><p><strong>callback</strong> (<em>function</em><em> or </em><em>instance method</em>) – the callback itself</p></li>
|
||
<li><p><strong>any</strong> (<em>any</em>) – any additional positional arguments to send to the callback</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<dl class="simple">
|
||
<dt>Kwargs:</dt><dd><p>persistent (bool, optional): persist the task (store it).
|
||
any (any): additional keyword arguments to send to the callback</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.taskhandler.TaskHandler.create_delays">
|
||
<code class="sig-name descname">create_delays</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.create_delays"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.create_delays" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Create the delayed tasks for the persistent tasks.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>This method should be automatically called when Evennia starts.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.taskhandler.TaskHandler.do_task">
|
||
<code class="sig-name descname">do_task</code><span class="sig-paren">(</span><em class="sig-param">task_id</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.do_task"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.do_task" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Execute the task (call its callback).</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>task_id</strong> (<em>int</em>) – a valid task ID.</p>
|
||
</dd>
|
||
</dl>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>This will also remove it from the list of current tasks.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.taskhandler.TaskHandler.load">
|
||
<code class="sig-name descname">load</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.load"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.load" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Load from the ServerConfig.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>This should be automatically called when Evennia starts.
|
||
It populates <cite>self.tasks</cite> according to the ServerConfig.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.taskhandler.TaskHandler.remove">
|
||
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param">task_id</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.remove" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Remove a persistent task without executing it.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>task_id</strong> (<em>int</em>) – an existing task ID.</p>
|
||
</dd>
|
||
</dl>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>A non-persistent task doesn’t have a task_id, it is not stored
|
||
in the TaskHandler.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.taskhandler.TaskHandler.save">
|
||
<code class="sig-name descname">save</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.save" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Save the tasks in ServerConfig.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="module-evennia.scripts.tests">
|
||
<span id="evennia-scripts-tests-module"></span><h2>evennia.scripts.tests module<a class="headerlink" href="#module-evennia.scripts.tests" title="Permalink to this headline">¶</a></h2>
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.tests.TestScript">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.tests.</code><code class="sig-name descname">TestScript</code><span class="sig-paren">(</span><em class="sig-param">methodName='runTest'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tests.html#TestScript"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tests.TestScript" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.utils.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>
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tests.TestScript.test_create">
|
||
<code class="sig-name descname">test_create</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tests.html#TestScript.test_create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tests.TestScript.test_create" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Check the script can be created via the convenience method.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.tests.TestScriptDB">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.tests.</code><code class="sig-name descname">TestScriptDB</code><span class="sig-paren">(</span><em class="sig-param">methodName='runTest'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tests.html#TestScriptDB"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tests.TestScriptDB" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.case.TestCase</span></code></p>
|
||
<p>Check the singleton/static ScriptDB object works correctly</p>
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tests.TestScriptDB.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/scripts/tests.html#TestScriptDB.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tests.TestScriptDB.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="method">
|
||
<dt id="evennia.scripts.tests.TestScriptDB.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/scripts/tests.html#TestScriptDB.tearDown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tests.TestScriptDB.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="method">
|
||
<dt id="evennia.scripts.tests.TestScriptDB.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/scripts/tests.html#TestScriptDB.test_delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tests.TestScriptDB.test_delete" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Check the script is removed from the database</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tests.TestScriptDB.test_deleted_script_fails_start">
|
||
<code class="sig-name descname">test_deleted_script_fails_start</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tests.html#TestScriptDB.test_deleted_script_fails_start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tests.TestScriptDB.test_deleted_script_fails_start" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Would it ever be necessary to start a deleted script?</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tests.TestScriptDB.test_deleted_script_is_invalid">
|
||
<code class="sig-name descname">test_deleted_script_is_invalid</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tests.html#TestScriptDB.test_deleted_script_is_invalid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tests.TestScriptDB.test_deleted_script_is_invalid" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Can deleted scripts be said to be valid?</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tests.TestScriptDB.test_double_delete">
|
||
<code class="sig-name descname">test_double_delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tests.html#TestScriptDB.test_double_delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tests.TestScriptDB.test_double_delete" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>What should happen? Isn’t it already deleted?</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="module-evennia.scripts.tickerhandler">
|
||
<span id="evennia-scripts-tickerhandler-module"></span><h2>evennia.scripts.tickerhandler module<a class="headerlink" href="#module-evennia.scripts.tickerhandler" title="Permalink to this headline">¶</a></h2>
|
||
<p>TickerHandler</p>
|
||
<p>This implements an efficient Ticker which uses a subscription
|
||
model to ‘tick’ subscribed objects at regular intervals.</p>
|
||
<p>The ticker mechanism is used by importing and accessing
|
||
the instantiated TICKER_HANDLER instance in this module. This
|
||
instance is run by the server; it will save its status across
|
||
server reloads and be started automaticall on boot.</p>
|
||
<p>Example:</p>
|
||
<dl>
|
||
<dt><a href="#id7"><span class="problematic" id="id8">``</span></a><a href="#id9"><span class="problematic" id="id10">`</span></a>python</dt><dd><p>from evennia.scripts.tickerhandler import TICKER_HANDLER</p>
|
||
<p># call tick myobj.at_tick(<a href="#id11"><span class="problematic" id="id12">*</span></a>args, <a href="#id13"><span class="problematic" id="id14">**</span></a>kwargs) every 15 seconds
|
||
TICKER_HANDLER.add(15, myobj.at_tick, <a href="#id15"><span class="problematic" id="id16">*</span></a>args, <a href="#id17"><span class="problematic" id="id18">**</span></a>kwargs)</p>
|
||
</dd>
|
||
</dl>
|
||
<p><a href="#id19"><span class="problematic" id="id20">``</span></a><a href="#id21"><span class="problematic" id="id22">`</span></a></p>
|
||
<p>You supply the interval to tick and a callable to call regularly with
|
||
any extra args/kwargs. The callable should either be a stand-alone
|
||
function in a module <em>or</em> the method on a <em>typeclassed</em> entity (that
|
||
is, on an object that can be safely and stably returned from the
|
||
database). Functions that are dynamically created or sits on
|
||
in-memory objects cannot be used by the tickerhandler (there is no way
|
||
to reference them safely across reboots and saves).</p>
|
||
<p>The handler will transparently set
|
||
up and add new timers behind the scenes to tick at given intervals,
|
||
using a TickerPool - all callables with the same interval will share
|
||
the interval ticker.</p>
|
||
<p>To remove:</p>
|
||
<dl class="simple">
|
||
<dt><a href="#id23"><span class="problematic" id="id24">``</span></a><a href="#id25"><span class="problematic" id="id26">`</span></a>python</dt><dd><p>TICKER_HANDLER.remove(15, myobj.at_tick)</p>
|
||
</dd>
|
||
</dl>
|
||
<p><a href="#id27"><span class="problematic" id="id28">``</span></a><a href="#id29"><span class="problematic" id="id30">`</span></a></p>
|
||
<p>Both interval and callable must be given since a single object can be subscribed
|
||
to many different tickers at the same time. You can also supply <cite>idstring</cite>
|
||
as an identifying string if you ever want to tick the callable at the same interval
|
||
but with different arguments (args/kwargs are not used for identifying the ticker). There
|
||
is also <cite>persistent=False</cite> if you don’t want to make a ticker that don’t survive a reload.
|
||
If either or both <cite>idstring</cite> or <cite>persistent</cite> has been changed from their defaults, they
|
||
must be supplied to the <cite>TICKER_HANDLER.remove</cite> call to properly identify the ticker
|
||
to remove.</p>
|
||
<p>The TickerHandler’s functionality can be overloaded by modifying the
|
||
Ticker class and then changing TickerPool and TickerHandler to use the
|
||
custom classes</p>
|
||
<p><a href="#id31"><span class="problematic" id="id32">``</span></a><a href="#id33"><span class="problematic" id="id34">`</span></a>python
|
||
class MyTicker(Ticker):</p>
|
||
<blockquote>
|
||
<div><p># [doing custom stuff]</p>
|
||
</div></blockquote>
|
||
<dl class="simple">
|
||
<dt>class MyTickerPool(TickerPool):</dt><dd><p>ticker_class = MyTicker</p>
|
||
</dd>
|
||
<dt>class MyTickerHandler(TickerHandler):</dt><dd><p>ticker_pool_class = MyTickerPool</p>
|
||
</dd>
|
||
</dl>
|
||
<p><a href="#id35"><span class="problematic" id="id36">``</span></a><a href="#id37"><span class="problematic" id="id38">`</span></a></p>
|
||
<p>If one wants to duplicate TICKER_HANDLER’s auto-saving feature in
|
||
a custom handler one can make a custom <cite>AT_STARTSTOP_MODULE</cite> entry to
|
||
call the handler’s <cite>save()</cite> and <cite>restore()</cite> methods when the server reboots.</p>
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.tickerhandler.Ticker">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.tickerhandler.</code><code class="sig-name descname">Ticker</code><span class="sig-paren">(</span><em class="sig-param">interval</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#Ticker"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.Ticker" 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 a repeatedly running task that calls
|
||
hooks repeatedly. Overload <cite>_callback</cite> to change the
|
||
way it operates.</p>
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.Ticker.__init__">
|
||
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param">interval</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#Ticker.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.Ticker.__init__" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set up the ticker</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>interval</strong> (<em>int</em>) – The stepping interval.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.Ticker._callback">
|
||
<code class="sig-name descname">_callback</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#Ticker._callback"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.Ticker._callback" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>This will be called repeatedly every <cite>self.interval</cite> seconds.
|
||
<cite>self.subscriptions</cite> contain tuples of (obj, args, kwargs) for
|
||
each subscribing object.</p>
|
||
<p>If overloading, this callback is expected to handle all
|
||
subscriptions when it is triggered. It should not return
|
||
anything and should not traceback on poorly designed hooks.
|
||
The callback should ideally work under @inlineCallbacks so it
|
||
can yield appropriately.</p>
|
||
<p>The _hook_key, which is passed down through the handler via
|
||
kwargs is used here to identify which hook method to call.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.Ticker.add">
|
||
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param">store_key</em>, <em class="sig-param">*args</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#Ticker.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.Ticker.add" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Sign up a subscriber to this ticker.
|
||
:param store_key: Unique storage hash for this ticker subscription.
|
||
:type store_key: str
|
||
:param args: Arguments to call the hook method with.
|
||
:type args: any, optional</p>
|
||
<dl class="simple">
|
||
<dt>Kwargs:</dt><dd><dl class="simple">
|
||
<dt>_start_delay (int): If set, this will be</dt><dd><p>used to delay the start of the trigger instead of
|
||
<cite>interval</cite>.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.Ticker.remove">
|
||
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param">store_key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#Ticker.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.Ticker.remove" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Unsubscribe object from this ticker</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>store_key</strong> (<em>str</em>) – Unique store key.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.Ticker.stop">
|
||
<code class="sig-name descname">stop</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#Ticker.stop"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.Ticker.stop" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Kill the Task, regardless of subscriptions.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.Ticker.validate">
|
||
<code class="sig-name descname">validate</code><span class="sig-paren">(</span><em class="sig-param">start_delay=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#Ticker.validate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.Ticker.validate" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Start/stop the task depending on how many subscribers we have
|
||
using it.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>start_delay</strong> (<em>int</em>) – Time to way before starting.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.tickerhandler.</code><code class="sig-name descname">TickerHandler</code><span class="sig-paren">(</span><em class="sig-param">save_name='ticker_storage'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler" 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 Tickerhandler maintains a pool of tasks for subscribing
|
||
objects to various tick rates. The pool maintains creation
|
||
instructions and and re-applies them at a server restart.</p>
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler.__init__">
|
||
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param">save_name='ticker_storage'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.__init__" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Initialize handler</p>
|
||
<dl class="simple">
|
||
<dt>save_name (str, optional): The name of the ServerConfig</dt><dd><p>instance to store the handler state persistently.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler._get_callback">
|
||
<code class="sig-name descname">_get_callback</code><span class="sig-paren">(</span><em class="sig-param">callback</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler._get_callback"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler._get_callback" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Analyze callback and determine its consituents</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>callback</strong> (<em>function</em><em> or </em><em>method</em>) – This is either a stand-alone
|
||
function or class method on a typeclassed entitye (that is,
|
||
an entity that can be saved to the database).</p>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p><dl class="simple">
|
||
<dt>This is a tuple of the form <cite>(obj, path, callfunc)</cite>,</dt><dd><p>where <cite>obj</cite> is the database object the callback is defined on
|
||
if it’s a method (otherwise <cite>None</cite>) and vice-versa, <cite>path</cite> is
|
||
the python-path to the stand-alone function (<cite>None</cite> if a method).
|
||
The <cite>callfunc</cite> is either the name of the method to call or the
|
||
callable function object itself.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>ret (tuple)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler._store_key">
|
||
<code class="sig-name descname">_store_key</code><span class="sig-paren">(</span><em class="sig-param">obj</em>, <em class="sig-param">path</em>, <em class="sig-param">interval</em>, <em class="sig-param">callfunc</em>, <em class="sig-param">idstring=''</em>, <em class="sig-param">persistent=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler._store_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler._store_key" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Tries to create a store_key for the object.</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><em>, </em><em>tuple</em><em> or </em><em>None</em>) – Subscribing object if any. If a tuple, this is
|
||
a packed_obj tuple from dbserialize.</p></li>
|
||
<li><p><strong>path</strong> (<em>str</em><em> or </em><em>None</em>) – Python-path to callable, if any.</p></li>
|
||
<li><p><strong>interval</strong> (<em>int</em>) – Ticker interval.</p></li>
|
||
<li><p><strong>callfunc</strong> (<em>callable</em><em> or </em><em>str</em>) – This is either the callable function or
|
||
the name of the method to call. Note that the callable is never
|
||
stored in the key; that is uniquely identified with the python-path.</p></li>
|
||
<li><p><strong>idstring</strong> (<em>str</em><em>, </em><em>optional</em>) – Additional separator between
|
||
different subscription types.</p></li>
|
||
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) – If this ticker should survive a system
|
||
shutdown or not.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p><dl class="simple">
|
||
<dt>A tuple <a href="#id39"><span class="problematic" id="id40">`</span></a>(packed_obj, methodname, outpath, interval,</dt><dd><p>idstring, persistent)` that uniquely identifies the
|
||
ticker. Here, <cite>packed_obj</cite> is the unique string representation of the
|
||
object or <cite>None</cite>. The <cite>methodname</cite> is the string name of the method on
|
||
<cite>packed_obj</cite> to call, or <cite>None</cite> if <cite>packed_obj</cite> is unset. <cite>path</cite> is
|
||
the Python-path to a non-method callable, or <cite>None</cite>. Finally, <cite>interval</cite>
|
||
<cite>idstring</cite> and <cite>persistent</cite> are integers, strings and bools respectively.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>store_key (tuple)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler.add">
|
||
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param">interval=60</em>, <em class="sig-param">callback=None</em>, <em class="sig-param">idstring=''</em>, <em class="sig-param">persistent=True</em>, <em class="sig-param">*args</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.add" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Add subscription to tickerhandler</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>interval</strong> (<em>int</em><em>, </em><em>optional</em>) – Interval in seconds between calling
|
||
<cite>callable(*args, **kwargs)</cite></p></li>
|
||
<li><p><strong>callable</strong> (<em>callable function</em><em> or </em><em>method</em><em>, </em><em>optional</em>) – This
|
||
should either be a stand-alone function or a method on a
|
||
typeclassed entity (that is, one that can be saved to the
|
||
database).</p></li>
|
||
<li><p><strong>idstring</strong> (<em>str</em><em>, </em><em>optional</em>) – Identifier for separating
|
||
this ticker-subscription from others with the same
|
||
interval. Allows for managing multiple calls with
|
||
the same time interval and callback.</p></li>
|
||
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) – A ticker will always survive
|
||
a server reload. If this is unset, the ticker will be
|
||
deleted by a server shutdown.</p></li>
|
||
<li><p><strong>kwargs</strong> (<em>args</em><em>,</em>) – These will be passed into the
|
||
callback every time it is called. This must be data possible
|
||
to pickle!</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p><dl class="simple">
|
||
<dt>The immutable store-key for this ticker. This can</dt><dd><p>be stored and passed into <cite>.remove(store_key=store_key)</cite> later to
|
||
easily stop this ticker later.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>store_key (tuple)</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>The callback will be identified by type and stored either as
|
||
as combination of serialized database object + methodname or
|
||
as a python-path to the module + funcname. These strings will
|
||
be combined iwth <cite>interval</cite> and <cite>idstring</cite> to define a
|
||
unique storage key for saving. These must thus all be supplied
|
||
when wanting to modify/remove the ticker later.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler.all">
|
||
<code class="sig-name descname">all</code><span class="sig-paren">(</span><em class="sig-param">interval=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler.all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.all" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Get all subscriptions.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>interval</strong> (<em>int</em>) – Limit match to tickers with this interval.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p><dl class="simple">
|
||
<dt>If <cite>interval</cite> was given, this is a list of</dt><dd><p>tickers using that interval.</p>
|
||
</dd>
|
||
<dt>tickerpool_layout (dict): If <cite>interval</cite> was <em>not</em> given,</dt><dd><p>this is a dict {interval1: [ticker1, ticker2, …], …}</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type</dt>
|
||
<dd class="field-odd"><p>tickers (list)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler.all_display">
|
||
<code class="sig-name descname">all_display</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler.all_display"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.all_display" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Get all tickers on an easily displayable form.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns</dt>
|
||
<dd class="field-odd"><p>A list of all storekeys</p>
|
||
</dd>
|
||
<dt class="field-even">Return type</dt>
|
||
<dd class="field-even"><p>tickers (dict)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler.clear">
|
||
<code class="sig-name descname">clear</code><span class="sig-paren">(</span><em class="sig-param">interval=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler.clear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.clear" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Stop/remove tickers from handler.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>interval</strong> (<em>int</em>) – Only stop tickers with this interval.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>This is the only supported way to kill tickers related to
|
||
non-db objects.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler.remove">
|
||
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param">interval=60</em>, <em class="sig-param">callback=None</em>, <em class="sig-param">idstring=''</em>, <em class="sig-param">persistent=True</em>, <em class="sig-param">store_key=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.remove" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Remove ticker subscription from handler.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>interval</strong> (<em>int</em><em>, </em><em>optional</em>) – Interval of ticker to remove.</p></li>
|
||
<li><p><strong>callback</strong> (<em>callable function</em><em> or </em><em>method</em>) – Either a function or
|
||
the method of a typeclassed object.</p></li>
|
||
<li><p><strong>idstring</strong> (<em>str</em><em>, </em><em>optional</em>) – Identifier id of ticker to remove.</p></li>
|
||
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether this ticker is persistent or not.</p></li>
|
||
<li><p><strong>store_key</strong> (<em>str</em><em>, </em><em>optional</em>) – If given, all other kwargs are ignored and only
|
||
this is used to identify the ticker.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Raises</dt>
|
||
<dd class="field-even"><p><strong>KeyError</strong> – If no matching ticker was found to remove.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>The store-key is normally built from the interval/callback/idstring/persistent values;
|
||
but if the <cite>store_key</cite> is explicitly given, this is used instead.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler.restore">
|
||
<code class="sig-name descname">restore</code><span class="sig-paren">(</span><em class="sig-param">server_reload=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler.restore"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.restore" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Restore ticker_storage from database and re-initialize the
|
||
handler from storage. This is triggered by the server at
|
||
restart.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>server_reload</strong> (<em>bool</em><em>, </em><em>optional</em>) – If this is False, it means
|
||
the server went through a cold reboot and all
|
||
non-persistent tickers must be killed.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler.save">
|
||
<code class="sig-name descname">save</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler.save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.save" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Save ticker_storage as a serialized string into a temporary
|
||
ServerConf field. Whereas saving is done on the fly, if called
|
||
by server when it shuts down, the current timer of each ticker
|
||
will be saved so it can start over from that point.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.tickerhandler.TickerHandler.ticker_pool_class">
|
||
<code class="sig-name descname">ticker_pool_class</code><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.ticker_pool_class" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>alias of <a class="reference internal" href="#evennia.scripts.tickerhandler.TickerPool" title="evennia.scripts.tickerhandler.TickerPool"><code class="xref py py-class docutils literal notranslate"><span class="pre">TickerPool</span></code></a></p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="class">
|
||
<dt id="evennia.scripts.tickerhandler.TickerPool">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.tickerhandler.</code><code class="sig-name descname">TickerPool</code><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerPool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerPool" 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 maintains a pool of
|
||
<cite>evennia.scripts.scripts.ExtendedLoopingCall</cite> tasks for calling
|
||
subscribed objects at given times.</p>
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerPool.__init__">
|
||
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerPool.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerPool.__init__" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Initialize the pool.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerPool.add">
|
||
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param">store_key</em>, <em class="sig-param">*args</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerPool.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerPool.add" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Add new ticker subscriber.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>store_key</strong> (<em>str</em>) – Unique storage hash.</p></li>
|
||
<li><p><strong>args</strong> (<em>any</em><em>, </em><em>optional</em>) – Arguments to send to the hook method.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerPool.remove">
|
||
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param">store_key</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerPool.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerPool.remove" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Remove subscription from pool.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>store_key</strong> (<em>str</em>) – Unique storage hash to remove</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="evennia.scripts.tickerhandler.TickerPool.stop">
|
||
<code class="sig-name descname">stop</code><span class="sig-paren">(</span><em class="sig-param">interval=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerPool.stop"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerPool.stop" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Stop all scripts in pool. This is done at server reload since
|
||
restoring the pool will automatically re-populate the pool.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>interval</strong> (<em>int</em><em>, </em><em>optional</em>) – Only stop tickers with this
|
||
interval.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="evennia.scripts.tickerhandler.TickerPool.ticker_class">
|
||
<code class="sig-name descname">ticker_class</code><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerPool.ticker_class" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>alias of <a class="reference internal" href="#evennia.scripts.tickerhandler.Ticker" title="evennia.scripts.tickerhandler.Ticker"><code class="xref py py-class docutils literal notranslate"><span class="pre">Ticker</span></code></a></p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="evennia.scripts.tickerhandler._GA">
|
||
<code class="sig-prename descclassname">evennia.scripts.tickerhandler.</code><code class="sig-name descname">_GA</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.tickerhandler._GA" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Return getattr(self, name).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="evennia.scripts.tickerhandler._SA">
|
||
<code class="sig-prename descclassname">evennia.scripts.tickerhandler.</code><code class="sig-name descname">_SA</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.tickerhandler._SA" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Implement setattr(self, name, value).</p>
|
||
</dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||
<div class="sphinxsidebarwrapper">
|
||
<p class="logo"><a href="../index.html">
|
||
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
|
||
</a></p>
|
||
<div id="searchbox" style="display: none" role="search">
|
||
<h3 id="searchlabel">Quick search</h3>
|
||
<div class="searchformwrapper">
|
||
<form class="search" action="../search.html" method="get">
|
||
<input type="text" name="q" aria-labelledby="searchlabel" />
|
||
<input type="submit" value="Go" />
|
||
</form>
|
||
</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.scripts package</a><ul>
|
||
<li><a class="reference internal" href="#subpackages">Subpackages</a></li>
|
||
<li><a class="reference internal" href="#submodules">Submodules</a></li>
|
||
<li><a class="reference internal" href="#module-evennia.scripts.admin">evennia.scripts.admin module</a></li>
|
||
<li><a class="reference internal" href="#module-evennia.scripts.manager">evennia.scripts.manager module</a></li>
|
||
<li><a class="reference internal" href="#module-evennia.scripts.models">evennia.scripts.models module</a></li>
|
||
<li><a class="reference internal" href="#module-evennia.scripts.monitorhandler">evennia.scripts.monitorhandler module</a></li>
|
||
<li><a class="reference internal" href="#module-evennia.scripts.scripthandler">evennia.scripts.scripthandler module</a></li>
|
||
<li><a class="reference internal" href="#module-evennia.scripts.scripts">evennia.scripts.scripts module</a></li>
|
||
<li><a class="reference internal" href="#module-evennia.scripts.taskhandler">evennia.scripts.taskhandler module</a></li>
|
||
<li><a class="reference internal" href="#module-evennia.scripts.tests">evennia.scripts.tests module</a></li>
|
||
<li><a class="reference internal" href="#module-evennia.scripts.tickerhandler">evennia.scripts.tickerhandler module</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<div role="note" aria-label="source link">
|
||
<!--h3>This Page</h3-->
|
||
<ul class="this-page-menu">
|
||
<li><a href="../_sources/api/evennia.scripts.rst.txt"
|
||
rel="nofollow">Show Page Source</a></li>
|
||
</ul>
|
||
</div>
|
||
<h3>Versions</h3>
|
||
<ul>
|
||
<li><a href="evennia.scripts.html">1.0-dev (develop branch)</a></li>
|
||
<li><a href="../../0.9.1/api/evennia.scripts.html">0.9.1 (master branch)</a></li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
>index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev documentation</a> »</li>
|
||
</ul>
|
||
</div>
|
||
<div class="footer" role="contentinfo">
|
||
© Copyright 2020, The Evennia developer community.
|
||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.4.4.
|
||
</div>
|
||
</body>
|
||
</html> |