evennia/docs/latest/api/evennia.scripts.scripthandler.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

318 lines
No EOL
20 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.scripts.scripthandler &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.scripts.scripts" href="evennia.scripts.scripts.html" />
<link rel="prev" title="evennia.scripts.ondemandhandler" href="evennia.scripts.ondemandhandler.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<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="right" >
<a href="evennia.scripts.scripts.html" title="evennia.scripts.scripts"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.scripts.ondemandhandler.html" title="evennia.scripts.ondemandhandler"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.scripts.html" accesskey="U">evennia.scripts</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.scripts.scripthandler</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.scripts.scripthandler">
<span id="evennia-scripts-scripthandler"></span><h1>evennia.scripts.scripthandler<a class="headerlink" href="#module-evennia.scripts.scripthandler" title="Link to this heading"></a></h1>
<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
<strong>scripts</strong> on the game object.</p>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.scripts.scripthandler.ScriptHandler">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.scripts.scripthandler.</span></span><span class="sig-name descname"><span class="pre">ScriptHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler" title="Link 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="py method">
<dt class="sig sig-object py" id="evennia.scripts.scripthandler.ScriptHandler.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.__init__" title="Link to this definition"></a></dt>
<dd><p>Set up internal state.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></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="py method">
<dt class="sig sig-object py" id="evennia.scripts.scripthandler.ScriptHandler.add">
<span class="sig-name descname"><span class="pre">add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">scriptclass</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">autostart</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.add" title="Link to this definition"></a></dt>
<dd><p>Add a script to this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></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>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>Script</em> The newly created Script.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.scripts.scripthandler.ScriptHandler.start">
<span class="sig-name descname"><span class="pre">start</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.start" title="Link to this definition"></a></dt>
<dd><p>Find scripts and force-start them</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>) The scripts key or dbref.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>nr_started (int)</em> The number of started scripts found.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.scripts.scripthandler.ScriptHandler.has">
<span class="sig-name descname"><span class="pre">has</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.has"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.has" title="Link to this definition"></a></dt>
<dd><p>Determine if a given script exists on this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>) Search criterion, the scripts key or dbref.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>bool</em> If the script exists or not.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.scripts.scripthandler.ScriptHandler.get">
<span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.get" title="Link to this definition"></a></dt>
<dd><p>Search scripts on this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>) Search criterion, the scripts key or dbref.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>scripts (queryset)</em> The found scripts matching <strong>key</strong>.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.scripts.scripthandler.ScriptHandler.remove">
<span class="sig-name descname"><span class="pre">remove</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/scripthandler.html#ScriptHandler.remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.remove" title="Link 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<span class="colon">:</span></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="py method">
<dt class="sig sig-object py" id="evennia.scripts.scripthandler.ScriptHandler.delete">
<span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.delete" title="Link 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<span class="colon">:</span></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="py method">
<dt class="sig sig-object py" id="evennia.scripts.scripthandler.ScriptHandler.stop">
<span class="sig-name descname"><span class="pre">stop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.stop" title="Link 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<span class="colon">:</span></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="py method">
<dt class="sig sig-object py" id="evennia.scripts.scripthandler.ScriptHandler.all">
<span class="sig-name descname"><span class="pre">all</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.scripts.scripthandler.ScriptHandler.all" title="Link to this definition"></a></dt>
<dd><p>Get all scripts stored in this handler.</p>
</dd></dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search 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" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.scripts.scripthandler</a><ul>
<li><a class="reference internal" href="#evennia.scripts.scripthandler.ScriptHandler"><code class="docutils literal notranslate"><span class="pre">ScriptHandler</span></code></a><ul>
<li><a class="reference internal" href="#evennia.scripts.scripthandler.ScriptHandler.__init__"><code class="docutils literal notranslate"><span class="pre">ScriptHandler.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.scripts.scripthandler.ScriptHandler.add"><code class="docutils literal notranslate"><span class="pre">ScriptHandler.add()</span></code></a></li>
<li><a class="reference internal" href="#evennia.scripts.scripthandler.ScriptHandler.start"><code class="docutils literal notranslate"><span class="pre">ScriptHandler.start()</span></code></a></li>
<li><a class="reference internal" href="#evennia.scripts.scripthandler.ScriptHandler.has"><code class="docutils literal notranslate"><span class="pre">ScriptHandler.has()</span></code></a></li>
<li><a class="reference internal" href="#evennia.scripts.scripthandler.ScriptHandler.get"><code class="docutils literal notranslate"><span class="pre">ScriptHandler.get()</span></code></a></li>
<li><a class="reference internal" href="#evennia.scripts.scripthandler.ScriptHandler.remove"><code class="docutils literal notranslate"><span class="pre">ScriptHandler.remove()</span></code></a></li>
<li><a class="reference internal" href="#evennia.scripts.scripthandler.ScriptHandler.delete"><code class="docutils literal notranslate"><span class="pre">ScriptHandler.delete()</span></code></a></li>
<li><a class="reference internal" href="#evennia.scripts.scripthandler.ScriptHandler.stop"><code class="docutils literal notranslate"><span class="pre">ScriptHandler.stop()</span></code></a></li>
<li><a class="reference internal" href="#evennia.scripts.scripthandler.ScriptHandler.all"><code class="docutils literal notranslate"><span class="pre">ScriptHandler.all()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.scripts.ondemandhandler.html"
title="previous chapter">evennia.scripts.ondemandhandler</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.scripts.scripts.html"
title="next chapter">evennia.scripts.scripts</a></p>
</div>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.scripts.scripthandler.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li>
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<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="right" >
<a href="evennia.scripts.scripts.html" title="evennia.scripts.scripts"
>next</a> |</li>
<li class="right" >
<a href="evennia.scripts.ondemandhandler.html" title="evennia.scripts.ondemandhandler"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.scripts.html" >evennia.scripts</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.scripts.scripthandler</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>