evennia/docs/latest/api/evennia.objects.objects.html
Evennia docbuilder action 5e617c5a46 Updated HTML docs.
2024-04-07 08:20:49 +00:00

2741 lines
No EOL
216 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>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>evennia.objects.objects &#8212; Evennia latest 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" />
<link rel="next" title="evennia.prototypes" href="evennia.prototypes.html" />
<link rel="prev" title="evennia.objects.models" href="evennia.objects.models.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="right" >
<a href="evennia.prototypes.html" title="evennia.prototypes"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.objects.models.html" title="evennia.objects.models"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</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.objects.html" accesskey="U">evennia.objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.objects.objects</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<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>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.objects.models.html"
title="previous chapter">evennia.objects.models</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.prototypes.html"
title="next chapter">evennia.prototypes</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.objects.objects.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="evennia.objects.objects.html">latest (main branch)</a></li>
<li><a href="../4.x/index.html">v4.0.0 branch (outdated)</a></li>
<li><a href="../3.x/index.html">v3.0.0 branch (outdated)</a></li>
<li><a href="../2.x/index.html">v2.0.0 branch (outdated)</a></li>
<li><a href="../1.x/index.html">v1.0.0 branch (outdated)</a></li>
<li><a href="../0.x/index.html">v0.9.5 branch (outdated)</a></li>
</ul>
</div>
</div>
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.objects.objects">
<span id="evennia-objects-objects"></span><h1>evennia.objects.objects<a class="headerlink" href="#module-evennia.objects.objects" title="Permalink to this headline"></a></h1>
<p>This module defines the basic <strong>DefaultObject</strong> and its children
<strong>DefaultCharacter</strong>, <strong>DefaultAccount</strong>, <strong>DefaultRoom</strong> and <strong>DefaultExit</strong>.
These are the (default) starting points for all in-game visible
entities.</p>
<dl class="py class">
<dt id="evennia.objects.objects.ObjectSessionHandler">
<em class="property">class </em><code class="sig-prename descclassname">evennia.objects.objects.</code><code class="sig-name descname">ObjectSessionHandler</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#ObjectSessionHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ObjectSessionHandler" 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>Handles the get/setting of the sessid comma-separated integer field</p>
<dl class="py method">
<dt id="evennia.objects.objects.ObjectSessionHandler.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#ObjectSessionHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ObjectSessionHandler.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initializes the handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object on which the handler is defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.ObjectSessionHandler.get">
<code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sessid</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#ObjectSessionHandler.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ObjectSessionHandler.get" title="Permalink to this definition"></a></dt>
<dd><p>Get the sessions linked to this Object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>sessid</strong> (<em>int</em><em>, </em><em>optional</em>) A specific session id.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>list</em> </p>
<dl class="simple">
<dt>The sessions connected to this object. If <strong>sessid</strong> is given,</dt><dd><p>this is a list of one (or zero) elements.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Aliased to <strong>self.all()</strong>.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.ObjectSessionHandler.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/objects/objects.html#ObjectSessionHandler.all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ObjectSessionHandler.all" title="Permalink to this definition"></a></dt>
<dd><p>Alias to get(), returning all sessions.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>list</em> All sessions.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.ObjectSessionHandler.add">
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">session</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#ObjectSessionHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ObjectSessionHandler.add" title="Permalink to this definition"></a></dt>
<dd><p>Add session to handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em> or </em><em>int</em>) Session or session id to add.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>We will only add a session/sessid if this actually also exists
in the the core sessionhandler.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.ObjectSessionHandler.remove">
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">session</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#ObjectSessionHandler.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ObjectSessionHandler.remove" title="Permalink to this definition"></a></dt>
<dd><p>Remove session from handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>or int</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) Session or session id to remove.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.ObjectSessionHandler.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/objects/objects.html#ObjectSessionHandler.clear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ObjectSessionHandler.clear" title="Permalink to this definition"></a></dt>
<dd><p>Clear all handled sessids.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.ObjectSessionHandler.count">
<code class="sig-name descname">count</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#ObjectSessionHandler.count"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ObjectSessionHandler.count" title="Permalink to this definition"></a></dt>
<dd><p>Get amount of sessions connected.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>int</em> Number of sessions handled.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.objects.objects.DefaultObject">
<em class="property">class </em><code class="sig-prename descclassname">evennia.objects.objects.</code><code class="sig-name descname">DefaultObject</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.models.html#evennia.objects.models.ObjectDB" title="evennia.objects.models.ObjectDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.models.ObjectDB</span></code></a></p>
<p>This is the root Object typeclass, representing all entities that
have an actual presence in-game. DefaultObjects generally have a
location. They can also be manipulated and looked at. Game
entities you define should inherit from DefaultObject at some distance.</p>
<p>It is recommended to create children of this class using the
<strong>evennia.create_object()</strong> function rather than to initialize the class
directly - this will both set things up and efficiently save the object
without <strong>obj.save()</strong> having to be called explicitly.</p>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.cmdset_provider_order">
<code class="sig-name descname">cmdset_provider_order</code><em class="property"> = 100</em><a class="headerlink" href="#evennia.objects.objects.DefaultObject.cmdset_provider_order" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.cmdset_provider_error_order">
<code class="sig-name descname">cmdset_provider_error_order</code><em class="property"> = 100</em><a class="headerlink" href="#evennia.objects.objects.DefaultObject.cmdset_provider_error_order" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.cmdset_provider_type">
<code class="sig-name descname">cmdset_provider_type</code><em class="property"> = 'object'</em><a class="headerlink" href="#evennia.objects.objects.DefaultObject.cmdset_provider_type" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.objects">
<code class="sig-name descname">objects</code><em class="property"> = &lt;evennia.objects.manager.ObjectManager object&gt;</em><a class="headerlink" href="#evennia.objects.objects.DefaultObject.objects" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.appearance_template">
<code class="sig-name descname">appearance_template</code><em class="property"> = '\n{header}\n|c{name}{extra_name_info}|n\n{desc}\n{exits}\n{characters}\n{things}\n{footer}\n '</em><a class="headerlink" href="#evennia.objects.objects.DefaultObject.appearance_template" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.cmdset">
<code class="sig-name descname">cmdset</code><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.cmdset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.cmdset" title="Permalink to this definition"></a></dt>
<dd><p>CmdSetHandler</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.scripts">
<code class="sig-name descname">scripts</code><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.scripts"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.scripts" title="Permalink to this definition"></a></dt>
<dd><p>ScriptHandler</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.nicks">
<code class="sig-name descname">nicks</code><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.nicks"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.nicks" title="Permalink to this definition"></a></dt>
<dd><p>NickHandler</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.sessions">
<code class="sig-name descname">sessions</code><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.sessions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.sessions" title="Permalink to this definition"></a></dt>
<dd><p>SessionHandler</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.is_connected">
<em class="property">property </em><code class="sig-name descname">is_connected</code><a class="headerlink" href="#evennia.objects.objects.DefaultObject.is_connected" title="Permalink to this definition"></a></dt>
<dd><p>True if this object is associated with an Account with any connected sessions.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.has_account">
<em class="property">property </em><code class="sig-name descname">has_account</code><a class="headerlink" href="#evennia.objects.objects.DefaultObject.has_account" title="Permalink to this definition"></a></dt>
<dd><p>True is this object has an associated account.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_cmdset_providers">
<code class="sig-name descname">get_cmdset_providers</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; dict<a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_cmdset_providers"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_cmdset_providers" title="Permalink to this definition"></a></dt>
<dd><p>Overrideable method which returns a dictionary of every kind of object which
has a cmdsethandler linked to this Object, and should participate in cmdset
merging.</p>
<p>Objects might be aware of an Account. Otherwise, just themselves, by default.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>dict[str, CmdSetProvider]</em> The CmdSetProviders linked to this Object.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.is_superuser">
<em class="property">property </em><code class="sig-name descname">is_superuser</code><a class="headerlink" href="#evennia.objects.objects.DefaultObject.is_superuser" title="Permalink to this definition"></a></dt>
<dd><p>True if this object has an account and that account is a superuser.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.contents_get">
<code class="sig-name descname">contents_get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">exclude</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">content_type</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.contents_get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.contents_get" title="Permalink to this definition"></a></dt>
<dd><p>Returns the contents of this object, i.e. all
objects that has this object set as its location.
This should be publically available.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>exclude</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object to exclude from returned
contents list</p></li>
<li><p><strong>content_type</strong> (<em>str</em>) A content_type to filter by. None for no
filtering.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>list</em> List of contents of this Object.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Also available as the <strong>.contents</strong> property, but that doesnt allow for exclusion and
filtering on content-types.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.contents_set">
<code class="sig-name descname">contents_set</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.contents_set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.contents_set" title="Permalink to this definition"></a></dt>
<dd><p>Makes sure <strong>.contents</strong> is read-only. Raises <strong>AttributeError</strong> if trying to set it.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.exits">
<em class="property">property </em><code class="sig-name descname">exits</code><a class="headerlink" href="#evennia.objects.objects.DefaultObject.exits" title="Permalink to this definition"></a></dt>
<dd><p>Returns all exits from this object, i.e. all objects at this
location having the property .destination != <strong>None</strong>.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_search_query_replacement">
<code class="sig-name descname">get_search_query_replacement</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">searchdata</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_search_query_replacement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_search_query_replacement" title="Permalink to this definition"></a></dt>
<dd><p>This method is called by the search method to allow for direct
replacements of the search string before it is used in the search.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>searchdata</strong> (<em>str</em>) The search string to replace.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) These are the same as passed to the <strong>search</strong> method.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The (potentially modified) search string.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_search_direct_match">
<code class="sig-name descname">get_search_direct_match</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">searchdata</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_search_direct_match"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_search_direct_match" title="Permalink to this definition"></a></dt>
<dd><p>This method is called by the search method to allow for direct
replacements, such as me always being an alias for this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>searchdata</strong> (<em>str</em>) The search string to replace.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) These are the same as passed to the <strong>search</strong> method.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>tuple</em> A tuple <strong>(should_return, str or Obj)</strong>, where <strong>should_return</strong> is a boolean
indicating the <strong>.search</strong> method should return the result immediately without further
processing. If <strong>should_return</strong> is <strong>True</strong>, the second element of the tuple is the result
that is returned.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_search_candidates">
<code class="sig-name descname">get_search_candidates</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">searchdata</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_search_candidates"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_search_candidates" title="Permalink to this definition"></a></dt>
<dd><p>Helper for the <strong>.search</strong> method. Get the candidates for a search. Also the <strong>candidates</strong>
provided to the search function is included, and could be modified in-place here.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>searchdata</strong> (<em>str</em>) The search criterion (could be modified by <strong>get_search_query_replacement</strong>).</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) These are the same as passed to the <strong>search</strong> method.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>list</em> A list of objects possibly relevant for the search.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If <strong>searchdata</strong> is a #dbref, this method should always return <strong>None</strong>. This is because
the search should always be global in this case. If <strong>candidates</strong> were already given,
they should be used as is. If <strong>location</strong> was given, the candidates should be based on
that.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_search_result">
<code class="sig-name descname">get_search_result</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">searchdata</span></em>, <em class="sig-param"><span class="n">attribute_name</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">typeclass</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">candidates</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">exact</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">use_dbref</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">tags</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_search_result"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_search_result" title="Permalink to this definition"></a></dt>
<dd><p>Helper for the <strong>.search</strong> method. This is a wrapper for actually searching for objects, used
by the <strong>search</strong> method. This is broken out into a separate method to allow for easier
overriding in child classes.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>searchdata</strong> (<em>str</em>) The search criterion.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) The attribute to search on (default is <a href="#id1"><span class="problematic" id="id2">**</span></a>.</p></li>
<li><p><strong>typeclass</strong> (<em>Typeclass</em><em> or </em><em>list</em>) The typeclass to search for.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) A list of objects to search between.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Require exact match.</p></li>
<li><p><strong>use_dbref</strong> (<em>bool</em>) Allow dbref search.</p></li>
<li><p><strong>tags</strong> (<em>list</em>) Tags to search for.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>queryset or iterable</em> The result of the search.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_stacked_results">
<code class="sig-name descname">get_stacked_results</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">results</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_stacked_results"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_stacked_results" title="Permalink to this definition"></a></dt>
<dd><p>This method is called by the search method to allow for handling of multi-match
results that should be stacked.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>results</strong> (<em>list</em>) The list of results from the search.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>tuple</em> A tuple <strong>(stacked, results)</strong>, where <strong>stacked</strong> is a boolean indicating if the
result is stacked and <strong>results</strong> is the list of results to return. If <strong>stacked</strong>
is True, the “.search” method will return <strong>results</strong> immediately without further
processing (it will not result in a multimatch-error).</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The <strong>stacked</strong> keyword argument is an integer that controls the max size of each stack
(if &gt;0). Its important to make sure to only stack _identical_ objects, otherwise we
risk losing track of objects.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.handle_search_results">
<code class="sig-name descname">handle_search_results</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">searchdata</span></em>, <em class="sig-param"><span class="n">results</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.handle_search_results"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.handle_search_results" title="Permalink to this definition"></a></dt>
<dd><p>This method is called by the search method to allow for handling of the final search result.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>searchdata</strong> (<em>str</em>) The original search criterion (potentially modified by
<strong>get_search_query_replacement</strong>).</p></li>
<li><p><strong>results</strong> (<em>list</em>) The list of results from the search.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) These are the same as passed to the <strong>search</strong> method.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>Object, None or list</em> Normally this is a single object, but if <strong>quiet=True</strong> it should be
a list. If quiet=False and we have to handle a no/multi-match error (directly messaging
the user), this should return <strong>None</strong>.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.search">
<code class="sig-name descname">search</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">searchdata</span></em>, <em class="sig-param"><span class="n">global_search</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">use_nicks</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">typeclass</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">location</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">attribute_name</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">quiet</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">exact</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">candidates</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">use_locks</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">nofound_string</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">multimatch_string</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">use_dbref</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">tags</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">stacked</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.search"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.search" title="Permalink to this definition"></a></dt>
<dd><p>Returns an Object matching a search string/condition</p>
<p>Perform a standard object search in the database, handling
multiple results and lack thereof gracefully. By default, only
objects in the current <strong>location</strong> of <strong>self</strong> or its inventory are searched for.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>searchdata</strong> (<em>str</em><em> or </em><em>obj</em>) <p>Primary search criterion. Will be matched
against <strong>object.key</strong> (with <strong>object.aliases</strong> second) unless
the keyword attribute_name specifies otherwise.</p>
<p>Special keywords:</p>
<ul>
<li><p><strong>#&lt;num&gt;</strong>: search by unique dbref. This is always a global search.</p></li>
<li><p><strong>me,self</strong>: self-reference to this object</p></li>
<li><dl class="simple">
<dt><strong>&lt;num&gt;-&lt;string&gt;</strong> - can be used to differentiate</dt><dd><p>between multiple same-named matches. The exact form of this input
is given by <strong>settings.SEARCH_MULTIMATCH_REGEX</strong>.</p>
</dd>
</dl>
</li>
</ul>
</p></li>
<li><p><strong>global_search</strong> (<em>bool</em>) Search all objects globally. This overrules location data.</p></li>
<li><p><strong>use_nicks</strong> (<em>bool</em>) Use nickname-replace (nicktype “object”) on <strong>searchdata</strong>.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>Typeclass</em><em>, or </em><em>list of either</em>) Limit search only
to <strong>Objects</strong> with this typeclass. May be a list of typeclasses
for a broader search.</p></li>
<li><p><strong>location</strong> (<em>Object</em><em> or </em><em>list</em>) Specify a location or multiple locations
to search. Note that this is used to query the <em>contents</em> of a
location and will not match for the location itself -
if you want that, dont set this or use <strong>candidates</strong> to specify
exactly which objects should be searched. If this nor candidates are
given, candidates will include callers inventory, current location and
all objects in the current location.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) Define which property to search. If set, no
key+alias search will be performed. This can be used
to search database fields (<a href="#id1"><span class="problematic" id="id2">db_</span></a> will be automatically
prepended), and if that fails, it will try to return
objects having Attributes with this name and value
equal to searchdata. A special use is to search for
“key” here if you want to do a key-search without
including aliases.</p></li>
<li><p><strong>quiet</strong> (<em>bool</em>) dont display default error messages - this tells the
search method that the user wants to handle all errors
themselves. It also changes the return value type, see
below.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) if unset (default) - prefers to match to beginning of
string rather than not matching at all. If set, requires
exact matching of entire string.</p></li>
<li><p><strong>candidates</strong> (<em>list of objects</em>) this is an optional custom list of objects
to search (filter) between. It is ignored if <strong>global_search</strong>
is given. If not set, this list will automatically be defined
to include the location, the contents of location and the
callers contents (inventory).</p></li>
<li><p><strong>use_locks</strong> (<em>bool</em>) If True (default) - removes search results which
fail the “search” lock.</p></li>
<li><p><strong>nofound_string</strong> (<em>str</em>) optional custom string for not-found error message.</p></li>
<li><p><strong>multimatch_string</strong> (<em>str</em>) optional custom string for multimatch error header.</p></li>
<li><p><strong>use_dbref</strong> (<em>bool</em><em> or </em><em>None</em><em>, </em><em>optional</em>) If <strong>True</strong>, allow to enter e.g. a query “#123”
to find an object (globally) by its database-id 123. If <strong>False</strong>, the string “#123”
will be treated like a normal string. If <strong>None</strong> (default), the ability to query by
#dbref is turned on if <strong>self</strong> has the permission Builder and is turned off
otherwise.</p></li>
<li><p><strong>tags</strong> (<em>list</em><em> or </em><em>tuple</em>) Find objects matching one or more Tags. This should be one or
more tag definitions on the form <strong>tagname</strong> or <strong>(tagname, tagcategory)</strong>.</p></li>
<li><p><strong>stacked</strong> (<em>int</em><em>, </em><em>optional</em>) If &gt; 0, multimatches will be analyzed to determine if they
only contains identical objects; these are then assumed stacked and no multi-match
error will be generated, instead <strong>stacked</strong> number of matches will be returned as a
list. If <strong>stacked</strong> is larger than number of matches, returns that number of matches.
If the found stack is a mix of objects, return None and handle the multi-match error
depending on the value of <strong>quiet</strong>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>Object, None or list</em> Will return an <strong>Object</strong> or <strong>None</strong> if <strong>quiet=False</strong>. Will return
a <strong>list</strong> with 0, 1 or more matches if <strong>quiet=True</strong>. If <strong>stacked</strong> is a positive integer,
this list may contain all stacked identical matches.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>To find Accounts, use eg. <strong>evennia.account_search</strong>. If
<strong>quiet=False</strong>, error messages will be handled by
<strong>settings.SEARCH_AT_RESULT</strong> and echoed automatically (on
error, return will be <strong>None</strong>). If <strong>quiet=True</strong>, the error
messaging is assumed to be handled by the caller.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.search_account">
<code class="sig-name descname">search_account</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">searchdata</span></em>, <em class="sig-param"><span class="n">quiet</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.search_account"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.search_account" title="Permalink to this definition"></a></dt>
<dd><p>Simple shortcut wrapper to search for accounts, not characters.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>searchdata</strong> (<em>str</em>) Search criterion - the key or dbref of the account
to search for. If this is “here” or “me”, search
for the account connected to this object.</p></li>
<li><p><strong>quiet</strong> (<em>bool</em>) Returns the results as a list rather than
echo eventual standard error messages. Default <strong>False</strong>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>DefaultAccount, None or list</em> What is returned depends on
the <strong>quiet</strong> setting:</p>
<ul class="simple">
<li><p><strong>quiet=False</strong>: No match or multumatch auto-echoes errors
to self.msg, then returns <strong>None</strong>. The esults are passed
through <strong>settings.SEARCH_AT_RESULT</strong> and
<strong>settings.SEARCH_AT_MULTIMATCH_INPUT</strong>. If there is a
unique match, this will be returned.</p></li>
<li><p><strong>quiet=True</strong>: No automatic error messaging is done, and
what is returned is always a list with 0, 1 or more
matching Accounts.</p></li>
</ul>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.execute_cmd">
<code class="sig-name descname">execute_cmd</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">raw_string</span></em>, <em class="sig-param"><span class="n">session</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.execute_cmd"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.execute_cmd" title="Permalink to this definition"></a></dt>
<dd><p>Do something as this object. This is never called normally,
its only used when wanting specifically to let an object be
the caller of a command. It makes use of nicks of eventual
connected accounts as well.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>raw_string</strong> (<em>string</em>) Raw command input</p></li>
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em>, </em><em>optional</em>) Session to
return results to</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>keyword arguments will be added to the found command</strong> (<em>Other</em>) </p></li>
<li><p><strong>instace as variables before it executes. This is</strong> (<a class="reference internal" href="evennia.scripts.models.html#evennia.scripts.models.ScriptDB.object" title="evennia.scripts.models.ScriptDB.object"><em>object</em></a>) </p></li>
<li><p><strong>by default Evennia but may be used to set flags and</strong> (<em>unused</em>) </p></li>
<li><p><strong>operating paramaters for commands at run-time.</strong> (<em>change</em>) </p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>Deferred</em> This is an asynchronous Twisted object that
will not fire until the command has actually finished
executing. To overload this one needs to attach
callback functions to it, with addCallback(function).
This function will be called with an eventual return
value from the command execution. This return is not
used at all by Evennia by default, but might be useful
for coders intending to implement some sort of nested
command structure.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.msg">
<code class="sig-name descname">msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">from_obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">session</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">options</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.msg" title="Permalink to this definition"></a></dt>
<dd><p>Emits something to a session attached to the object.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>str</em><em> or </em><em>tuple</em>) The message to send. This
is treated internally like any send-command, so its
value can be a tuple if sending multiple arguments to
the <strong>text</strong> oob command.</p></li>
<li><p><strong>from_obj</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a><em>, </em><a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a><em>, </em><a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em>, or </em><a class="reference internal" href="evennia.contrib.game_systems.barter.barter.html#evennia.contrib.game_systems.barter.barter.TradeHandler.list" title="evennia.contrib.game_systems.barter.barter.TradeHandler.list"><em>list</em></a>) object that is sending. If
given, at_msg_send will be called. This value will be
passed on to the protocol. If iterable, will execute hook
on all entities in it.</p></li>
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em> or </em><a class="reference internal" href="evennia.contrib.game_systems.barter.barter.html#evennia.contrib.game_systems.barter.barter.TradeHandler.list" title="evennia.contrib.game_systems.barter.barter.TradeHandler.list"><em>list</em></a>) Session or list of
Sessions to relay data to, if any. If set, will force send
to these sessions. If unset, who receives the message
depends on the MULTISESSION_MODE.</p></li>
<li><p><strong>options</strong> (<em>dict</em>) Message-specific option-value
pairs. These will be applied at the protocol level.</p></li>
<li><p><strong>**kwargs</strong> (<em>string</em><em> or </em><em>tuples</em>) All kwarg keys not listed above
will be treated as send-command names and their arguments
(which can be a string or a tuple).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The <strong>at_msg_receive</strong> method will be called on this Object.
All extra kwargs will be passed on to the protocol.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.for_contents">
<code class="sig-name descname">for_contents</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">func</span></em>, <em class="sig-param"><span class="n">exclude</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.for_contents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.for_contents" title="Permalink to this definition"></a></dt>
<dd><p>Runs a function on every object contained within this one.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>func</strong> (<em>callable</em>) Function to call. This must have the
formal call sign func(obj, <strong>kwargs), where obj is the
object currently being processed and ****kwargs</strong> are
passed on from the call to <strong>for_contents</strong>.</p></li>
<li><p><strong>exclude</strong> (<em>list</em><em>, </em><em>optional</em>) A list of object not to call the
function on.</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><p><strong>arguments will be passed to the function for all objects.</strong> (<em>Keyword</em>) </p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.msg_contents">
<code class="sig-name descname">msg_contents</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">exclude</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">from_obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">mapping</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">raise_funcparse_errors</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.msg_contents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.msg_contents" title="Permalink to this definition"></a></dt>
<dd><p>Emits a message to all objects inside this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>str</em><em> or </em><em>tuple</em>) Message to send. If a tuple, this should be
on the valid OOB outmessage form <strong>(message, {kwargs})</strong>,
where kwargs are optional data passed to the <strong>text</strong>
outputfunc. The message will be parsed for <strong>{key}</strong> formatting and
<strong>$You/$you()/$You()</strong>, <strong>$obj(name)</strong>, <strong>$conj(verb)</strong> and <strong>$pron(pronoun, option)</strong>
inline function callables.
The <strong>name</strong> is taken from the <strong>mapping</strong> kwarg {“name”: object, …}**.
The <strong>mapping[key].get_display_name(looker=recipient)</strong> will be called
for that key for every recipient of the string.</p></li>
<li><p><strong>exclude</strong> (<em>list</em><em>, </em><em>optional</em>) A list of objects not to send to.</p></li>
<li><p><strong>from_obj</strong> (<em>Object</em><em>, </em><em>optional</em>) An object designated as the
“sender” of the message. See <strong>DefaultObject.msg()</strong> for
more info. This will be used for <strong>$You/you</strong> if using funcparser inlines.</p></li>
<li><p><strong>mapping</strong> (<em>dict</em><em>, </em><em>optional</em>) A mapping of formatting keys
<strong>{“key”:&lt;object&gt;, “key2”:&lt;object2&gt;,…}.
The keys must either match **{key}</strong> or <strong>$You(key)/$you(key)</strong> markers
in the <strong>text</strong> string. If <strong>&lt;object&gt;</strong> doesnt have a <strong>get_display_name</strong>
method, it will be returned as a string. Pass “you” to represent the caller,
this can be skipped if <strong>from_obj</strong> is provided (that will then act as you).</p></li>
<li><p><strong>raise_funcparse_errors</strong> (<em>bool</em><em>, </em><em>optional</em>) If set, a failing <strong>$func()</strong> will
lead to an outright error. If unset (default), the failing <strong>$func()</strong>
will instead appear in output unparsed.</p></li>
<li><p><strong>**kwargs</strong> Keyword arguments will be passed on to <strong>obj.msg()</strong> for all
messaged objects.</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>For actor-stance reporting (You say/Name says), use the
<strong>$You()/$you()/$You(key)</strong> and <strong>$conj(verb)</strong> (verb-conjugation)
inline callables. This will use the respective <strong>get_display_name()</strong>
for all onlookers except for <strong>from_obj or self</strong>, which will become
You/you. If you use <strong>$You/you(key)</strong>, the key must be in <strong>mapping</strong>.</p>
<p>For director-stance reporting (Name says/Name says), use {key}
syntax directly. For both <strong>{key}</strong> and <strong>You/you(key)</strong>,
<strong>mapping[key].get_display_name(looker=recipient)</strong> may be called
depending on who the recipient is.</p>
<p class="rubric">Examples</p>
<p>Lets assume:</p>
<ul class="simple">
<li><p><strong>player1.key</strong> -&gt; “Player1”,</p></li>
<li><p><strong>player1.get_display_name(looker=player2)</strong> -&gt; “The First girl”</p></li>
<li><p><strong>player2.key</strong> -&gt; “Player2”,</p></li>
<li><p><strong>player2.get_display_name(looker=player1)</strong> -&gt; “The Second girl”</p></li>
</ul>
<p>Actor-stance:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">char</span><span class="o">.</span><span class="n">location</span><span class="o">.</span><span class="n">msg_contents</span><span class="p">(</span>
<span class="s2">&quot;$You() $conj(attack) $you(defender).&quot;</span><span class="p">,</span>
<span class="n">from_obj</span><span class="o">=</span><span class="n">player1</span><span class="p">,</span>
<span class="n">mapping</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;defender&quot;</span><span class="p">:</span> <span class="n">player2</span><span class="p">})</span>
</pre></div>
</div>
<ul class="simple">
<li><p>player1 will see <strong>You attack The Second girl.</strong></p></li>
<li><p>player2 will see The First girl attacks you.</p></li>
</ul>
<p>Director-stance:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">char</span><span class="o">.</span><span class="n">location</span><span class="o">.</span><span class="n">msg_contents</span><span class="p">(</span>
<span class="s2">&quot;</span><span class="si">{attacker}</span><span class="s2"> attacks </span><span class="si">{defender}</span><span class="s2">.&quot;</span><span class="p">,</span>
<span class="n">mapping</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;attacker&quot;</span><span class="p">:</span><span class="n">player1</span><span class="p">,</span> <span class="s2">&quot;defender&quot;</span><span class="p">:</span><span class="n">player2</span><span class="p">})</span>
</pre></div>
</div>
<ul class="simple">
<li><p>player1 will see: Player1 attacks The Second girl.</p></li>
<li><p>player2 will see: The First girl attacks Player2</p></li>
</ul>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.move_to">
<code class="sig-name descname">move_to</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">destination</span></em>, <em class="sig-param"><span class="n">quiet</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">emit_to_obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">use_destination</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">to_none</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">move_hooks</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.move_to"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.move_to" title="Permalink to this definition"></a></dt>
<dd><p>Moves this object to a new location.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>destination</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Reference to the object to move to. This
can also be an exit object, in which case the
destination property is used as destination.</p></li>
<li><p><strong>quiet</strong> (<em>bool</em>) If true, turn off the calling of the emit hooks
(announce_move_to/from etc)</p></li>
<li><p><strong>emit_to_obj</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) object to receive error messages</p></li>
<li><p><strong>use_destination</strong> (<em>bool</em>) Default is for objects to use the “destination”
property of destinations as the target to move to. Turning off this
keyword allows objects to move “inside” exit objects.</p></li>
<li><p><strong>to_none</strong> (<em>bool</em>) Allow destination to be None. Note that no hooks are run when
moving to a None location. If you want to run hooks, run them manually
(and make sure they can manage None locations).</p></li>
<li><p><strong>move_hooks</strong> (<em>bool</em>) If False, turn off the calling of move-related hooks
(at_pre/post_move etc) with quiet=True, this is as quiet a move
as can be done.</p></li>
<li><p><strong>move_type</strong> (<em>str</em>) The “kind of move” being performed, such as “teleport”, “traverse”,
“get”, “give”, or “drop”. The value can be arbitrary. By default, it only affects
the text message generated by announce_move_to and announce_move_from by defining
their {“type”: move_type} for outgoing text. This can be used for altering
messages and/or overloaded hook behaviors.</p></li>
<li><p><strong>**kwargs</strong> Passed on to announce_move_to and announce_move_from hooks. Exits will set
the “exit_obj” kwarg to themselves.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> True/False depending on if there were problems with the move. This method may also
return various error messages to the <strong>emit_to_obj</strong>.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>No access checks are done in this method, these should be handled before
calling <strong>move_to</strong>.</p>
<p>The <strong>DefaultObject</strong> hooks called (if <strong>move_hooks=True</strong>) are, in order:</p>
<ol class="arabic simple">
<li><p><strong>self.at_pre_move(destination)</strong> (abort if return False)</p></li>
<li><p><strong>source_location.at_pre_object_leave(self, destination)</strong> (abort if return False)</p></li>
<li><p><strong>destination.at_pre_object_receive(self, source_location)</strong> (abort if return False)</p></li>
<li><p><strong>source_location.at_object_leave(self, destination)</strong></p></li>
<li><p><strong>self.announce_move_from(destination)</strong></p></li>
<li><p>(move happens here)</p></li>
<li><p><strong>self.announce_move_to(source_location)</strong></p></li>
<li><p><strong>destination.at_object_receive(self, source_location)</strong></p></li>
<li><p><strong>self.at_post_move(source_location)</strong></p></li>
</ol>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.clear_exits">
<code class="sig-name descname">clear_exits</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.clear_exits"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.clear_exits" title="Permalink to this definition"></a></dt>
<dd><p>Destroys all of the exits and any exits pointing to this
object as a destination.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.clear_contents">
<code class="sig-name descname">clear_contents</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.clear_contents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.clear_contents" title="Permalink to this definition"></a></dt>
<dd><p>Moves all objects (accounts/things) to their home location or
to default home.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_default_lockstring">
<em class="property">classmethod </em><code class="sig-name descname">get_default_lockstring</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">account</span><span class="p">:</span> <span class="n">DefaultAccount</span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">caller</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject">DefaultObject</a></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_default_lockstring"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_default_lockstring" title="Permalink to this definition"></a></dt>
<dd><p>Classmethod called during .create() to determine default locks 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>account</strong> (<a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a>) Account to attribute this object to.</p></li>
<li><p><strong>caller</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object which is creating this one.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary input.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> A lockstring to use for this object.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.create">
<em class="property">classmethod </em><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">account</span><span class="p">:</span> <span class="n">DefaultAccount</span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">caller</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject">DefaultObject</a></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">method</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'create'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.create" title="Permalink to this definition"></a></dt>
<dd><p>Creates a basic object with default parameters, unless otherwise
specified or extended.</p>
<p>Provides a friendlier interface to the utils.create_object() 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">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>account</strong> (<a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a>) Account to attribute this object to.</p></li>
<li><p><strong>caller</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object which is creating this one.</p></li>
<li><p><strong>description</strong> (<em>str</em>) Brief description for this object.</p></li>
<li><p><strong>ip</strong> (<em>str</em>) IP address of creator (for object auditing).</p></li>
<li><p><strong>method</strong> (<em>str</em>) The method of creation. Defaults to “create”.</p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>tuple</em> A tuple (Object, errors): A newly created object of the given typeclass. This
will be <strong>None</strong> if there are errors. The second element is then a list of errors that
occurred during creation. If this is empty, its safe to assume the object was created
successfully.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.copy">
<code class="sig-name descname">copy</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">new_key</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.copy" title="Permalink to this definition"></a></dt>
<dd><p>Makes an identical copy of this object, identical except for a
new dbref in the database. If you want to customize the copy
by changing some settings, use ObjectDB.object.copy_object()
directly.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>new_key</strong> (<em>string</em>) New key/name of copied object. If new_key is not
specified, the copy will be named &lt;old_key&gt;_copy by default.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>Object</em> A copy of this object.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_object_post_copy">
<code class="sig-name descname">at_object_post_copy</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">new_obj</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_object_post_copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_object_post_copy" title="Permalink to this definition"></a></dt>
<dd><p>Called by DefaultObject.copy(). Meant to be overloaded. In case theres extra data not
covered by .copy(), this can be used to deal with it.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>new_obj</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The new Copy of this object.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.delete">
<code class="sig-name descname">delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.delete" title="Permalink to this definition"></a></dt>
<dd><p>Deletes this object. Before deletion, this method makes sure
to move all contained objects to their respective home
locations, as well as clean up all exits to/from the object.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>bool</em> Whether or not the delete completed successfully or not.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.access">
<code class="sig-name descname">access</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">accessing_obj</span></em>, <em class="sig-param"><span class="n">access_type</span><span class="o">=</span><span class="default_value">'read'</span></em>, <em class="sig-param"><span class="n">default</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">no_superuser_bypass</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.access"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.access" title="Permalink to this definition"></a></dt>
<dd><p>Determines if another object has permission to access this object
in whatever way.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>accessing_obj</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object trying to access this one.</p></li>
<li><p><strong>access_type</strong> (<em>str</em><em>, </em><em>optional</em>) Type of access sought.</p></li>
<li><p><strong>default</strong> (<em>bool</em><em>, </em><em>optional</em>) What to return if no lock of access_type was found.</p></li>
<li><p><strong>no_superuser_bypass</strong> (<em>bool</em><em>, </em><em>optional</em>) If <strong>True</strong>, dont skip
lock check for superuser (be careful with this one).</p></li>
<li><p><strong>**kwargs</strong> Passed on to the at_access hook along with the result of the access check.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.filter_visible">
<code class="sig-name descname">filter_visible</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj_list</span></em>, <em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.filter_visible"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.filter_visible" title="Permalink to this definition"></a></dt>
<dd><p>Filter a list of objects to only include those that are visible to the looker.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj_list</strong> (<em>list</em>) List of objects to filter.</p></li>
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object doing the looking.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary data for use when overriding.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>list</em> The filtered list of visible objects.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>By default this simply checks the view and search locks on each object in the list.
Override this
method to implement custom visibility mechanics.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_display_name">
<code class="sig-name descname">get_display_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_display_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_display_name" title="Permalink to this definition"></a></dt>
<dd><p>Displays the name of the object in a viewer-aware manner.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object or account that is looking at or getting information
for this object.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> A name to display for this object. By default this returns the <strong>.name</strong> of the object.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This function can be extended to change how object names appear to users in character,
but it does not change an objects keys or aliases when searching.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_extra_display_name_info">
<code class="sig-name descname">get_extra_display_name_info</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_extra_display_name_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_extra_display_name_info" title="Permalink to this definition"></a></dt>
<dd><p>Adds any extra display information to the objects name. By default this is is the
objects dbref in parentheses, if the looker has permission to see it.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object looking at this object.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The dbref of this object, if the looker has permission to see it. Otherwise, an
empty string is returned.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>By default, this becomes a string (#dbref) attached to the objects name.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_numbered_name">
<code class="sig-name descname">get_numbered_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">count</span></em>, <em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_numbered_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_numbered_name" title="Permalink to this definition"></a></dt>
<dd><p>Return the numbered (singular, plural) forms of this objects key. This is by default called
by return_appearance and is used for grouping multiple same-named of this object. Note that
this will be called on <em>every</em> member of a group even though the plural name will be only
shown once. Also the singular display version, such as an apple, a tree is determined
from this method.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>count</strong> (<em>int</em>) Number of objects of this type</p></li>
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Onlooker. Not used by default.</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em>) Optional key to pluralize. If not given, the objects <strong>.get_display_name()</strong>
method is used.</p></li>
<li><p><strong>return_string</strong> (<em>bool</em>) If <strong>True</strong>, return only the singular form if count is 0,1 or
the plural form otherwise. If <strong>False</strong> (default), return both forms as a tuple.</p></li>
<li><p><strong>no_article</strong> (<em>bool</em>) If <strong>True</strong>, do not return an article if <strong>count</strong> is 1.</p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>tuple</em> This is a tuple <strong>(str, str)</strong> with the singular and plural forms of the key
including the count.</p>
</dd>
</dl>
<p>Examples:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">obj</span><span class="o">.</span><span class="n">get_numbered_name</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="n">looker</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;foo&quot;</span><span class="p">)</span>
<span class="o">-&gt;</span> <span class="p">(</span><span class="s2">&quot;a foo&quot;</span><span class="p">,</span> <span class="s2">&quot;three foos&quot;</span><span class="p">)</span>
<span class="n">obj</span><span class="o">.</span><span class="n">get_numbered_name</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">looker</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;Foobert&quot;</span><span class="p">,</span> <span class="n">return_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="o">-&gt;</span> <span class="s2">&quot;a Foobert&quot;</span>
<span class="n">obj</span><span class="o">.</span><span class="n">get_numbered_name</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">looker</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;Foobert&quot;</span><span class="p">,</span> <span class="n">return_string</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">no_article</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="o">-&gt;</span> <span class="s2">&quot;Foobert&quot;</span>
</pre></div>
</div>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_display_header">
<code class="sig-name descname">get_display_header</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_display_header"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_display_header" title="Permalink to this definition"></a></dt>
<dd><p>Get the header component of the object description. Called by <strong>return_appearance</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object doing the looking.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary data for use when overriding.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The header display string.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_display_desc">
<code class="sig-name descname">get_display_desc</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_display_desc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_display_desc" title="Permalink to this definition"></a></dt>
<dd><p>Get the desc component of the object description. Called by <strong>return_appearance</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object doing the looking.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary data for use when overriding.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The desc display string.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_display_exits">
<code class="sig-name descname">get_display_exits</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_display_exits"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_display_exits" title="Permalink to this definition"></a></dt>
<dd><p>Get the exits component of the object description. Called by <strong>return_appearance</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object doing the looking.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary data for use when overriding.</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><p><strong>exit_order</strong> (<em>iterable of str</em>) The order in which exits should be listed, with
unspecified exits appearing at the end, alphabetically.</p>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>str</em> The exits display data.</p>
</dd>
</dl>
<p>Examples:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">For</span> <span class="n">a</span> <span class="n">room</span> <span class="k">with</span> <span class="n">exits</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">order</span> <span class="s1">&#39;portal&#39;</span><span class="p">,</span> <span class="s1">&#39;south&#39;</span><span class="p">,</span> <span class="s1">&#39;north&#39;</span><span class="p">,</span> <span class="ow">and</span> <span class="s1">&#39;out&#39;</span><span class="p">:</span>
<span class="n">obj</span><span class="o">.</span><span class="n">get_display_name</span><span class="p">(</span><span class="n">looker</span><span class="p">,</span> <span class="n">exit_order</span><span class="o">=</span><span class="p">(</span><span class="s1">&#39;north&#39;</span><span class="p">,</span> <span class="s1">&#39;south&#39;</span><span class="p">))</span>
<span class="o">-&gt;</span> <span class="s2">&quot;Exits: north, south, out, and portal.&quot;</span> <span class="p">(</span><span class="n">markup</span> <span class="ow">not</span> <span class="n">shown</span> <span class="n">here</span><span class="p">)</span>
</pre></div>
</div>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_display_characters">
<code class="sig-name descname">get_display_characters</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_display_characters"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_display_characters" title="Permalink to this definition"></a></dt>
<dd><p>Get the characters component of the object description. Called by <strong>return_appearance</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object doing the looking.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary data for use when overriding.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The character display data.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_display_things">
<code class="sig-name descname">get_display_things</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_display_things"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_display_things" title="Permalink to this definition"></a></dt>
<dd><p>Get the things component of the object description. Called by <strong>return_appearance</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object doing the looking.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary data for use when overriding.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The things display data.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_display_footer">
<code class="sig-name descname">get_display_footer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_display_footer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_display_footer" title="Permalink to this definition"></a></dt>
<dd><p>Get the footer component of the object description. Called by <strong>return_appearance</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object doing the looking.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary data for use when overriding.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The footer display string.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.format_appearance">
<code class="sig-name descname">format_appearance</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">appearance</span></em>, <em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.format_appearance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.format_appearance" title="Permalink to this definition"></a></dt>
<dd><p>Final processing of the entire appearance string. Called by <strong>return_appearance</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>appearance</strong> (<em>str</em>) The compiled appearance string.</p></li>
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object doing the looking.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary data for use when overriding.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The final formatted output.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.return_appearance">
<code class="sig-name descname">return_appearance</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.return_appearance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.return_appearance" title="Permalink to this definition"></a></dt>
<dd><p>Main callback used by look for the object to describe itself.
This formats a description. By default, this looks for the <strong>appearance_template</strong>
string set on this class and populates it with formatting keys
name, desc, exits, characters, things as well as
(currently empty) header/footer. Each of these values are
retrieved by a matching method <strong>.get_display_*</strong>, such as <strong>get_display_name</strong>,
<strong>get_display_footer</strong> etc.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object doing the looking. Passed into all helper methods.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call. This is passed into all helper methods.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The description of this entity. By default this includes
the entitys name, description and any contents inside it.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>To simply change the layout of how the object displays itself (like
adding some line decorations or change colors of different sections),
you can simply edit <strong>.appearance_template</strong>. You only need to override
this method (and/or its helpers) if you want to change what is passed
into the template or want the most control over output.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_first_save">
<code class="sig-name descname">at_first_save</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_first_save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_first_save" title="Permalink to this definition"></a></dt>
<dd><p>This is called by the typeclass system whenever an instance of
this class is saved for the first time. It is a generic hook
for calling the startup hooks for the various game entities.
When overloading you generally dont overload this but
overload the hooks called by this method.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.basetype_setup">
<code class="sig-name descname">basetype_setup</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.basetype_setup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.basetype_setup" title="Permalink to this definition"></a></dt>
<dd><p>This sets up the default properties of an Object, just before
the more general at_object_creation.</p>
<p>You normally dont need to change this unless you change some
fundamental things like names of permission groups.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.basetype_posthook_setup">
<code class="sig-name descname">basetype_posthook_setup</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.basetype_posthook_setup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.basetype_posthook_setup" title="Permalink to this definition"></a></dt>
<dd><p>Called once, after basetype_setup and at_object_creation. This
should generally not be overloaded unless you are redefining
how a room/exit/object works. It allows for basetype-like
setup after the object is created. An example of this is
EXITs, who need to know keys, aliases, locks etc to set up
their exit-cmdsets.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_object_creation">
<code class="sig-name descname">at_object_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_object_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_object_creation" title="Permalink to this definition"></a></dt>
<dd><p>Called once, when this object is first created. This is the
normal hook to overload for most object types.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_object_delete">
<code class="sig-name descname">at_object_delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_object_delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_object_delete" title="Permalink to this definition"></a></dt>
<dd><p>Called just before the database object is persistently
delete()d from the database. If this method returns False,
deletion is aborted.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_init">
<code class="sig-name descname">at_init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_init" title="Permalink to this definition"></a></dt>
<dd><p>This is always called whenever this object is initiated
that is, whenever it its typeclass is cached from memory. This
happens on-demand first time the object is used or activated
in some way after being created but also after each server
restart or reload.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_cmdset_get">
<code class="sig-name descname">at_cmdset_get</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_cmdset_get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_cmdset_get" title="Permalink to this definition"></a></dt>
<dd><p>Called just before cmdsets on this object are requested by the
command handler. If changes need to be done on the fly to the
cmdset before passing them on to the cmdhandler, this is the
place to do it. This is called also if the object currently
have no cmdsets.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>caller</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a><em>, </em><a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a><em> or </em><a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) The object requesting the cmdsets.</p></li>
<li><p><strong>current</strong> (<a class="reference internal" href="evennia.commands.cmdset.html#evennia.commands.cmdset.CmdSet" title="evennia.commands.cmdset.CmdSet"><em>CmdSet</em></a>) The current merged cmdset.</p></li>
<li><p><strong>force_init</strong> (<em>bool</em>) If <strong>True</strong>, force a re-build of the cmdset. (seems unused)</p></li>
<li><p><strong>**kwargs</strong> Arbitrary input for overloads.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_cmdsets">
<code class="sig-name descname">get_cmdsets</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">caller</span></em>, <em class="sig-param"><span class="n">current</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_cmdsets"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_cmdsets" title="Permalink to this definition"></a></dt>
<dd><p>Called by the CommandHandler to get a list of cmdsets to merge.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>caller</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object requesting the cmdsets.</p></li>
<li><p><strong>current</strong> (<em>cmdset</em>) The current merged cmdset.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary input for overloads.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>tuple</em> A tuple of (current, cmdsets), which is probably self.cmdset.current and self.cmdset.cmdset_stack</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_pre_puppet">
<code class="sig-name descname">at_pre_puppet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">account</span></em>, <em class="sig-param"><span class="n">session</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_pre_puppet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_pre_puppet" title="Permalink to this definition"></a></dt>
<dd><p>Called just before an Account connects to this object to puppet
it.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>account</strong> (<a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a>) This is the connecting account.</p></li>
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) Session controlling the connection.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_post_puppet">
<code class="sig-name descname">at_post_puppet</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_post_puppet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_post_puppet" title="Permalink to this definition"></a></dt>
<dd><p>Called just after puppeting has been completed and all
Account&lt;-&gt;Object links have been established.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>You can use <strong>self.account</strong> and <strong>self.sessions.get()</strong> to get account and sessions at this
point; the last entry in the list from <strong>self.sessions.get()</strong> is the latest Session
puppeting this Object.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_pre_unpuppet">
<code class="sig-name descname">at_pre_unpuppet</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_pre_unpuppet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_pre_unpuppet" title="Permalink to this definition"></a></dt>
<dd><p>Called just before beginning to un-connect a puppeting from
this Account.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>You can use <strong>self.account</strong> and <strong>self.sessions.get()</strong> to get
account and sessions at this point; the last entry in the
list from <strong>self.sessions.get()</strong> is the latest Session
puppeting this Object.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_post_unpuppet">
<code class="sig-name descname">at_post_unpuppet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">account</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">session</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_post_unpuppet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_post_unpuppet" title="Permalink to this definition"></a></dt>
<dd><p>Called just after the Account successfully disconnected from
this object, severing all connections.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>account</strong> (<a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a>) The account object that just disconnected
from this object. This can be <strong>None</strong> if this is called
automatically (such as after a cleanup operation).</p></li>
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) Session id controlling the connection that
just disconnected.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.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/objects/objects.html#DefaultObject.at_server_reload"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.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="py method">
<dt id="evennia.objects.objects.DefaultObject.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/objects/objects.html#DefaultObject.at_server_shutdown"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.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="py method">
<dt id="evennia.objects.objects.DefaultObject.at_access">
<code class="sig-name descname">at_access</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">result</span></em>, <em class="sig-param"><span class="n">accessing_obj</span></em>, <em class="sig-param"><span class="n">access_type</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_access"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_access" title="Permalink to this definition"></a></dt>
<dd><p>This is called with the result of an access call, along with
any kwargs used for that call. The return of this method does
not affect the result of the lock check. It can be used e.g. to
customize error messages in a central location or other effects
based on the access result.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>result</strong> (<em>bool</em>) The outcome of the access call.</p></li>
<li><p><strong>accessing_obj</strong> (<em>Object</em><em> or </em><em>Account</em>) The entity trying to gain access.</p></li>
<li><p><strong>access_type</strong> (<em>str</em>) The type of access that was requested.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments. Unused by default.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_pre_move">
<code class="sig-name descname">at_pre_move</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">destination</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_pre_move"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_pre_move" title="Permalink to this definition"></a></dt>
<dd><p>Called just before starting to move this object to
destination. Return False to abort move.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>destination</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object we are moving to</p></li>
<li><p><strong>move_type</strong> (<em>str</em>) The type of move. “give”, “traverse”, etc.
This is an arbitrary string provided to obj.move_to().
Useful for altering messages or altering logic depending
on the kind of movement.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If we should move or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns <strong>False</strong> or <strong>None</strong>, the move is cancelled
before it is even started.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_pre_object_leave">
<code class="sig-name descname">at_pre_object_leave</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">leaving_object</span></em>, <em class="sig-param"><span class="n">destination</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_pre_object_leave"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_pre_object_leave" title="Permalink to this definition"></a></dt>
<dd><p>Called just before this object is about lose an object that was
previously inside it. Return False to abort move.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>leaving_object</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object that is about to leave.</p></li>
<li><p><strong>destination</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Where object is going to.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If <strong>leaving_object</strong> should be allowed to leave or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns <strong>False</strong> or <strong>None</strong>, the move is canceled before
it even started.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_pre_object_receive">
<code class="sig-name descname">at_pre_object_receive</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">arriving_object</span></em>, <em class="sig-param"><span class="n">source_location</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_pre_object_receive"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_pre_object_receive" title="Permalink to this definition"></a></dt>
<dd><p>Called just before this object received another object. If this
method returns <strong>False</strong>, the move is aborted and the moved entity
remains where it was.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>arriving_object</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object moved into this one</p></li>
<li><p><strong>source_location</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Where <strong>moved_object</strong> came from.
Note that this could be <strong>None</strong>.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If False, abort move and <strong>moved_obj</strong> remains where it was.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns <strong>False</strong> or <strong>None</strong>, the move is canceled before
it even started.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_before_move">
<code class="sig-name descname">at_before_move</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">destination</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_before_move" title="Permalink to this definition"></a></dt>
<dd><p>Called just before starting to move this object to
destination. Return False to abort move.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>destination</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object we are moving to</p></li>
<li><p><strong>move_type</strong> (<em>str</em>) The type of move. “give”, “traverse”, etc.
This is an arbitrary string provided to obj.move_to().
Useful for altering messages or altering logic depending
on the kind of movement.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If we should move or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns <strong>False</strong> or <strong>None</strong>, the move is cancelled
before it is even started.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.announce_move_from">
<code class="sig-name descname">announce_move_from</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">destination</span></em>, <em class="sig-param"><span class="n">msg</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">mapping</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.announce_move_from"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.announce_move_from" title="Permalink to this definition"></a></dt>
<dd><p>Called if the move is to be announced. This is
called while we are still standing in the old
location.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>destination</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The place we are going to.</p></li>
<li><p><strong>msg</strong> (<em>str</em><em>, </em><em>optional</em>) a replacement message.</p></li>
<li><p><strong>mapping</strong> (<em>dict</em><em>, </em><em>optional</em>) additional mapping objects.</p></li>
<li><p><strong>move_type</strong> (<em>str</em>) The type of move. “give”, “traverse”, etc.
This is an arbitrary string provided to obj.move_to().
Useful for altering messages or altering logic depending
on the kind of movement.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>You can override this method and call its parent with a
message to simply change the default message. In the string,
you can use the following as mappings:</p>
<ul class="simple">
<li><p><strong>{object}</strong>: the object which is moving.</p></li>
<li><p><strong>{exit}</strong>: the exit from which the object is moving (if found).</p></li>
<li><p><strong>{origin}</strong>: the location of the object before the move.</p></li>
<li><p><strong>{destination}</strong>: the location of the object after moving.</p></li>
</ul>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.announce_move_to">
<code class="sig-name descname">announce_move_to</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source_location</span></em>, <em class="sig-param"><span class="n">msg</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">mapping</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.announce_move_to"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.announce_move_to" title="Permalink to this definition"></a></dt>
<dd><p>Called after the move if the move was not quiet. At this point
we are standing in the new location.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>source_location</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The place we came from</p></li>
<li><p><strong>msg</strong> (<em>str</em><em>, </em><em>optional</em>) the replacement message if location.</p></li>
<li><p><strong>mapping</strong> (<em>dict</em><em>, </em><em>optional</em>) additional mapping objects.</p></li>
<li><p><strong>move_type</strong> (<em>str</em>) The type of move. “give”, “traverse”, etc.
This is an arbitrary string provided to obj.move_to().
Useful for altering messages or altering logic depending
on the kind of movement.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>You can override this method and call its parent with a
message to simply change the default message. In the string,
you can use the following as mappings (between braces):</p>
<ul class="simple">
<li><p><strong>{object}</strong>: the object which is moving.</p></li>
<li><p><strong>{exit}</strong>: the exit from which the object is moving (if found).</p></li>
<li><p><strong>{origin}</strong>: the location of the object before the move.</p></li>
<li><p><strong>{destination}</strong>: the location of the object after moving.</p></li>
</ul>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_post_move">
<code class="sig-name descname">at_post_move</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source_location</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_post_move"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_post_move" title="Permalink to this definition"></a></dt>
<dd><p>Called after move has completed, regardless of quiet mode or
not. Allows changes to the object due to the location it is
now in.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>source_location</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Where we came from. This may be <strong>None</strong>.</p></li>
<li><p><strong>move_type</strong> (<em>str</em>) The type of move. “give”, “traverse”, etc.
This is an arbitrary string provided to obj.move_to().
Useful for altering messages or altering logic depending
on the kind of movement.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_after_move">
<code class="sig-name descname">at_after_move</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source_location</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_after_move" title="Permalink to this definition"></a></dt>
<dd><p>Called after move has completed, regardless of quiet mode or
not. Allows changes to the object due to the location it is
now in.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>source_location</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Where we came from. This may be <strong>None</strong>.</p></li>
<li><p><strong>move_type</strong> (<em>str</em>) The type of move. “give”, “traverse”, etc.
This is an arbitrary string provided to obj.move_to().
Useful for altering messages or altering logic depending
on the kind of movement.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_object_leave">
<code class="sig-name descname">at_object_leave</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">moved_obj</span></em>, <em class="sig-param"><span class="n">target_location</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_object_leave"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_object_leave" title="Permalink to this definition"></a></dt>
<dd><p>Called just before an object leaves from inside this object</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>moved_obj</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object leaving</p></li>
<li><p><strong>target_location</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Where <strong>moved_obj</strong> is going.</p></li>
<li><p><strong>move_type</strong> (<em>str</em>) The type of move. “give”, “traverse”, etc.
This is an arbitrary string provided to obj.move_to().
Useful for altering messages or altering logic depending
on the kind of movement.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_object_receive">
<code class="sig-name descname">at_object_receive</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">moved_obj</span></em>, <em class="sig-param"><span class="n">source_location</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_object_receive"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_object_receive" title="Permalink to this definition"></a></dt>
<dd><p>Called after an object has been moved into this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>moved_obj</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object moved into this one</p></li>
<li><p><strong>source_location</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Where <strong>moved_object</strong> came from.
Note that this could be <strong>None</strong>.</p></li>
<li><p><strong>move_type</strong> (<em>str</em>) The type of move. “give”, “traverse”, etc.
This is an arbitrary string provided to obj.move_to().
Useful for altering messages or altering logic depending
on the kind of movement.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_traverse">
<code class="sig-name descname">at_traverse</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">traversing_object</span></em>, <em class="sig-param"><span class="n">target_location</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_traverse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_traverse" title="Permalink to this definition"></a></dt>
<dd><p>This hook is responsible for handling the actual traversal,
normally by calling
<strong>traversing_object.move_to(target_location)</strong>. It is normally
only implemented by Exit objects. If it returns False (usually
because <strong>move_to</strong> returned False), <strong>at_post_traverse</strong> below
should not be called and instead <strong>at_failed_traverse</strong> should be
called.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>traversing_object</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object traversing us.</p></li>
<li><p><strong>target_location</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Where target is going.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_post_traverse">
<code class="sig-name descname">at_post_traverse</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">traversing_object</span></em>, <em class="sig-param"><span class="n">source_location</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_post_traverse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_post_traverse" title="Permalink to this definition"></a></dt>
<dd><p>Called just after an object successfully used this object to
traverse to another object (i.e. this object is a type of
Exit)</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>traversing_object</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object traversing us.</p></li>
<li><p><strong>source_location</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Where <strong>traversing_object</strong> came from.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The target location should normally be available as <strong>self.destination</strong>.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_after_traverse">
<code class="sig-name descname">at_after_traverse</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">traversing_object</span></em>, <em class="sig-param"><span class="n">source_location</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_after_traverse" title="Permalink to this definition"></a></dt>
<dd><p>Called just after an object successfully used this object to
traverse to another object (i.e. this object is a type of
Exit)</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>traversing_object</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object traversing us.</p></li>
<li><p><strong>source_location</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Where <strong>traversing_object</strong> came from.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The target location should normally be available as <strong>self.destination</strong>.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_failed_traverse">
<code class="sig-name descname">at_failed_traverse</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">traversing_object</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_failed_traverse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_failed_traverse" title="Permalink to this definition"></a></dt>
<dd><p>This is called if an object fails to traverse this object for
some reason.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>traversing_object</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object that failed traversing us.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Using the default exits, this hook will not be called if an
Attribute <strong>err_traverse</strong> is defined - this will in that case be
read for an error string instead.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_msg_receive">
<code class="sig-name descname">at_msg_receive</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">from_obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_msg_receive"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_msg_receive" title="Permalink to this definition"></a></dt>
<dd><p>This hook is called whenever someone sends a message to this
object using the <strong>msg</strong> method.</p>
<p>Note that from_obj may be None if the sender did not include
itself as an argument to the obj.msg() call - so you have to
check for this. .</p>
<p>Consider this a pre-processing method before msg is passed on
to the user session. If this method returns False, the msg
will not be passed on.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>str</em><em>, </em><em>optional</em>) The message received.</p></li>
<li><p><strong>from_obj</strong> (<em>any</em><em>, </em><em>optional</em>) The object sending the message.</p></li>
<li><p><strong>**kwargs</strong> This includes any keywords sent to the <strong>msg</strong> method.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>receive (bool)</em> If this message should be received.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns False, the <strong>msg</strong> operation
will abort without sending the message.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_msg_send">
<code class="sig-name descname">at_msg_send</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">to_obj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_msg_send"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_msg_send" title="Permalink to this definition"></a></dt>
<dd><p>This is a hook that is called when <em>this</em> object sends a
message to another object with <strong>obj.msg(text, to_obj=obj)</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>str</em><em>, </em><em>optional</em>) Text to send.</p></li>
<li><p><strong>to_obj</strong> (<em>any</em><em>, </em><em>optional</em>) The object to send to.</p></li>
<li><p><strong>**kwargs</strong> Keywords passed from msg().</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Since this method is executed by <strong>from_obj</strong>, if no <strong>from_obj</strong>
was passed to <strong>DefaultCharacter.msg</strong> this hook will never
get called.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_visible_contents">
<code class="sig-name descname">get_visible_contents</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_visible_contents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_visible_contents" title="Permalink to this definition"></a></dt>
<dd><p>DEPRECATED
Get all contents of this object that a looker can see (whatever that means, by default it
checks the view and search locks and excludes the looker themselves), grouped by type.
Helper method to return_appearance.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The entity looking.</p></li>
<li><p><strong>**kwargs</strong> Passed from <strong>return_appearance</strong>. Unused by default.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>dict</em> A dict of lists categorized by type. Byt default this
contains exits, characters and things. The elements of these
lists are the actual objects.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.get_content_names">
<code class="sig-name descname">get_content_names</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.get_content_names"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.get_content_names" title="Permalink to this definition"></a></dt>
<dd><p>DEPRECATED
Get the proper names for all contents of this object. Helper method
for return_appearance.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The entity looking.</p></li>
<li><p><strong>**kwargs</strong> Passed from <strong>return_appearance</strong>. Passed into
<strong>get_display_name</strong> for each found entity.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>dict</em> A dict of lists categorized by type. Byt default this
contains exits, characters and things. The elements
of these lists are strings - names of the objects that
can depend on the looker and also be grouped in the case
of multiple same-named things etc.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This method shouldnt add extra coloring to the names beyond what is
already given by the .get_display_name() (and the .name field) already.
Per-type coloring can be applied in <strong>return_appearance</strong>.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_look">
<code class="sig-name descname">at_look</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_look"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_look" title="Permalink to this definition"></a></dt>
<dd><p>Called when this object performs a look. It allows to
customize just what this means. It will not itself
send any data.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>target</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The target being looked at. This is
commonly an object or the current location. It will
be checked for the “view” type access.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call. This will be passed into
return_appearance, get_display_name and at_desc but is not used
by default.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> A ready-processed look string potentially ready to return to the looker.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_desc">
<code class="sig-name descname">at_desc</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_desc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_desc" title="Permalink to this definition"></a></dt>
<dd><p>This is called whenever someone looks at this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>looker</strong> (<em>Object</em><em>, </em><em>optional</em>) The object requesting the description.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_pre_get">
<code class="sig-name descname">at_pre_get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">getter</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_pre_get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_pre_get" title="Permalink to this definition"></a></dt>
<dd><p>Called by the default <strong>get</strong> command before this object has been
picked up.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>getter</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object about to get this object.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If the object should be gotten or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns False/None, the getting is cancelled
before it is even started.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_before_get">
<code class="sig-name descname">at_before_get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">getter</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_before_get" title="Permalink to this definition"></a></dt>
<dd><p>Called by the default <strong>get</strong> command before this object has been
picked up.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>getter</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object about to get this object.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If the object should be gotten or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns False/None, the getting is cancelled
before it is even started.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_get">
<code class="sig-name descname">at_get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">getter</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_get" title="Permalink to this definition"></a></dt>
<dd><p>Called by the default <strong>get</strong> command when this object has been
picked up.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>getter</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object getting this object.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This hook cannot stop the pickup from happening. Use
permissions or the at_pre_get() hook for that.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_pre_give">
<code class="sig-name descname">at_pre_give</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">giver</span></em>, <em class="sig-param"><span class="n">getter</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_pre_give"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_pre_give" title="Permalink to this definition"></a></dt>
<dd><p>Called by the default <strong>give</strong> command before this object has been
given.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>giver</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object about to give this object.</p></li>
<li><p><strong>getter</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object about to get this object.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>shouldgive (bool)</em> If the object should be given or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns <strong>False</strong> or <strong>None</strong>, the giving is cancelled
before it is even started.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_before_give">
<code class="sig-name descname">at_before_give</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">giver</span></em>, <em class="sig-param"><span class="n">getter</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_before_give" title="Permalink to this definition"></a></dt>
<dd><p>Called by the default <strong>give</strong> command before this object has been
given.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>giver</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object about to give this object.</p></li>
<li><p><strong>getter</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object about to get this object.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>shouldgive (bool)</em> If the object should be given or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns <strong>False</strong> or <strong>None</strong>, the giving is cancelled
before it is even started.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_give">
<code class="sig-name descname">at_give</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">giver</span></em>, <em class="sig-param"><span class="n">getter</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_give"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_give" title="Permalink to this definition"></a></dt>
<dd><p>Called by the default <strong>give</strong> command when this object has been
given.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>giver</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object giving this object.</p></li>
<li><p><strong>getter</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object getting this object.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This hook cannot stop the give from happening. Use
permissions or the at_pre_give() hook for that.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_pre_drop">
<code class="sig-name descname">at_pre_drop</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dropper</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_pre_drop"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_pre_drop" title="Permalink to this definition"></a></dt>
<dd><p>Called by the default <strong>drop</strong> command before this object has been
dropped.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dropper</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object which will drop this object.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If the object should be dropped or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns <strong>False</strong> or <strong>None</strong>, the dropping is cancelled
before it is even started.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_before_drop">
<code class="sig-name descname">at_before_drop</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dropper</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_before_drop" title="Permalink to this definition"></a></dt>
<dd><p>Called by the default <strong>drop</strong> command before this object has been
dropped.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dropper</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object which will drop this object.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If the object should be dropped or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If this method returns <strong>False</strong> or <strong>None</strong>, the dropping is cancelled
before it is even started.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_drop">
<code class="sig-name descname">at_drop</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dropper</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_drop"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_drop" title="Permalink to this definition"></a></dt>
<dd><p>Called by the default <strong>drop</strong> command when this object has been
dropped.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dropper</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object which just dropped this object.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This hook cannot stop the drop from happening. Use
permissions or the at_pre_drop() hook for that.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_pre_say">
<code class="sig-name descname">at_pre_say</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_pre_say"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_pre_say" title="Permalink to this definition"></a></dt>
<dd><p>Before the object says something.</p>
<p>This hook is by default used by the say and whisper
commands as used by this command it is called before the text
is said/whispered and can be used to customize the outgoing
text from the object. Returning <strong>None</strong> aborts the command.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>message</strong> (<em>str</em>) The suggested say/whisper text spoken by self.</p>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>whisper</strong> (<em>bool</em>) If True, this is a whisper rather than
a say. This is sent by the whisper command by default.
Other verbal commands could use this hook in similar
ways.</p></li>
<li><p><strong>receivers</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a><em> or </em><em>iterable</em>) If set, this is the target or targets for the
say/whisper.</p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>str</em> The (possibly modified) text to be spoken.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_before_say">
<code class="sig-name descname">at_before_say</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_before_say" title="Permalink to this definition"></a></dt>
<dd><p>Before the object says something.</p>
<p>This hook is by default used by the say and whisper
commands as used by this command it is called before the text
is said/whispered and can be used to customize the outgoing
text from the object. Returning <strong>None</strong> aborts the command.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>message</strong> (<em>str</em>) The suggested say/whisper text spoken by self.</p>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>whisper</strong> (<em>bool</em>) If True, this is a whisper rather than
a say. This is sent by the whisper command by default.
Other verbal commands could use this hook in similar
ways.</p></li>
<li><p><strong>receivers</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a><em> or </em><em>iterable</em>) If set, this is the target or targets for the
say/whisper.</p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>str</em> The (possibly modified) text to be spoken.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultObject.at_say">
<code class="sig-name descname">at_say</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="n">msg_self</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">msg_location</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">receivers</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">msg_receivers</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultObject.at_say"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultObject.at_say" title="Permalink to this definition"></a></dt>
<dd><p>Display the actual say (or whisper) of self.</p>
<p>This hook should display the actual say/whisper of the object in its
location. It should both alert the object (self) and its
location that some text is spoken. The overriding of messages or
<strong>mapping</strong> allows for simple customization of the hook without
re-writing it completely.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) The message to convey.</p></li>
<li><p><strong>msg_self</strong> (<em>bool</em><em> or </em><em>str</em><em>, </em><em>optional</em>) If boolean True, echo <strong>message</strong> to self. If a string,
return that message. If False or unset, dont echo to self.</p></li>
<li><p><strong>msg_location</strong> (<em>str</em><em>, </em><em>optional</em>) The message to echo to selfs location.</p></li>
<li><p><strong>receivers</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a><em> or </em><em>iterable</em><em>, </em><em>optional</em>) An eventual receiver or receivers of the
message (by default only used by whispers).</p></li>
<li><p><strong>msg_receivers</strong> (<em>str</em>) Specific message to pass to the receiver(s). This will parsed
with the {receiver} placeholder replaced with the given receiver.</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>whisper</strong> (<em>bool</em>) If this is a whisper rather than a say. Kwargs
can be used by other verbal commands in a similar way.</p></li>
<li><p><strong>mapping</strong> (<em>dict</em>) Pass an additional mapping to the message.</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Messages can contain {} markers. These are substituted against the values
passed in the <strong>mapping</strong> argument.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">msg_self</span> <span class="o">=</span> <span class="s1">&#39;You say: &quot;</span><span class="si">{speech}</span><span class="s1">&quot;&#39;</span>
<span class="n">msg_location</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{object}</span><span class="s1"> says: &quot;</span><span class="si">{speech}</span><span class="s1">&quot;&#39;</span>
<span class="n">msg_receivers</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{object}</span><span class="s1"> whispers: &quot;</span><span class="si">{speech}</span><span class="s1">&quot;&#39;</span>
</pre></div>
</div>
<p>Supported markers by default:</p>
<ul class="simple">
<li><p>{self}: text to self-reference with (default You)</p></li>
<li><p>{speech}: the text spoken/whispered by self.</p></li>
<li><p>{object}: the object speaking.</p></li>
<li><p>{receiver}: replaced with a single receiver only for strings meant for a specific
receiver (otherwise None).</p></li>
<li><p>{all_receivers}: comma-separated list of all receivers,
if more than one, otherwise same as receiver</p></li>
<li><p>{location}: the location where object is.</p></li>
</ul>
</dd></dl>
<dl class="py exception">
<dt id="evennia.objects.objects.DefaultObject.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.objects.objects.DefaultObject.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.models.html#evennia.objects.models.ObjectDB.DoesNotExist" title="evennia.objects.models.ObjectDB.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.models.ObjectDB.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.objects.objects.DefaultObject.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.objects.objects.DefaultObject.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.models.html#evennia.objects.models.ObjectDB.MultipleObjectsReturned" title="evennia.objects.models.ObjectDB.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.models.ObjectDB.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.objects.objects.DefaultObject'</em><a class="headerlink" href="#evennia.objects.objects.DefaultObject.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultObject.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'DefaultObject'</em><a class="headerlink" href="#evennia.objects.objects.DefaultObject.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.objects.objects.DefaultCharacter">
<em class="property">class </em><code class="sig-prename descclassname">evennia.objects.objects.</code><code class="sig-name descname">DefaultCharacter</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultCharacter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
<p>This implements an Object puppeted by a Session - that is,
a character avatar controlled by an account.</p>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultCharacter.lockstring">
<code class="sig-name descname">lockstring</code><em class="property"> = 'puppet:id({character_id}) or pid({account_id}) or perm(Developer) or pperm(Developer);delete:id({account_id}) or perm(Admin);edit:pid({account_id}) or perm(Admin)'</em><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.lockstring" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.get_default_lockstring">
<em class="property">classmethod </em><code class="sig-name descname">get_default_lockstring</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">account</span><span class="p">:</span> <span class="n">DefaultAccount</span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">caller</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject">DefaultObject</a></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultCharacter.get_default_lockstring"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.get_default_lockstring" title="Permalink to this definition"></a></dt>
<dd><p>Classmethod called during .create() to determine default locks 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>account</strong> (<a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a>) Account to attribute this object to.</p></li>
<li><p><strong>caller</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object which is creating this one.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary input.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> A lockstring to use for this object.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.create">
<em class="property">classmethod </em><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">account</span><span class="p">:</span> <span class="n">DefaultAccount</span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">caller</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject">DefaultObject</a></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">method</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'create'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultCharacter.create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.create" title="Permalink to this definition"></a></dt>
<dd><p>Creates a basic Character with default parameters, unless otherwise
specified or extended.</p>
<p>Provides a friendlier interface to the utils.create_character() function.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em>) Name of the new Character.</p></li>
<li><p><strong>account</strong> (<em>obj</em><em>, </em><em>optional</em>) Account to associate this Character with.
If unset supplying None it will
change the default lockset and skip creator attribution.</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>description</strong> (<em>str</em>) Brief description for this object.</p></li>
<li><p><strong>ip</strong> (<em>str</em>) IP address of creator (for object auditing).</p></li>
<li><p><strong>other kwargs will be passed into the create_object call.</strong> (<em>All</em>) </p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>tuple</em> <strong>(new_character, errors)</strong>. On error, the <strong>new_character</strong> is <strong>None</strong> and
<strong>errors</strong> is a <strong>list</strong> of error strings (an empty list otherwise).</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.normalize_name">
<em class="property">classmethod </em><code class="sig-name descname">normalize_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultCharacter.normalize_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.normalize_name" title="Permalink to this definition"></a></dt>
<dd><p>Normalize the character name prior to creating.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>name</strong> (<em>str</em>) The name of the character</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> A valid, latinized name.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The main purpose of this is to make sure that character names are not created with
special unicode characters that look visually identical to latin charaters. This could
be used to impersonate other characters.</p>
<p>This method should be refactored to support i18n for non-latin names, but as we
(currently) have no bug reports requesting better support of non-latin character sets,
requiring character names to be latinified is an acceptable default option.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.validate_name">
<em class="property">classmethod </em><code class="sig-name descname">validate_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">account</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span>str<span class="p">, </span>None<span class="p">]</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultCharacter.validate_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.validate_name" title="Permalink to this definition"></a></dt>
<dd><p>Validate the character name prior to creating. Overload this function to add custom validators</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>name</strong> (<em>str</em>) The name of the character</p>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><p><strong>account</strong> (<a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a><em>, </em><em>optional</em>) The account creating the character.</p>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>str or None</em> A non-empty error message if there is a problem, otherwise <strong>None</strong>.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.basetype_setup">
<code class="sig-name descname">basetype_setup</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultCharacter.basetype_setup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.basetype_setup" title="Permalink to this definition"></a></dt>
<dd><p>Setup character-specific security.</p>
<p>You should normally not need to overload this, but if you do,
make sure to reproduce at least the two last commands in this
method (unless you want to fundamentally change how a
Character object works).</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.at_post_move">
<code class="sig-name descname">at_post_move</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source_location</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultCharacter.at_post_move"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.at_post_move" title="Permalink to this definition"></a></dt>
<dd><p>We make sure to look around after a move.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.at_after_move">
<code class="sig-name descname">at_after_move</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">source_location</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.at_after_move" title="Permalink to this definition"></a></dt>
<dd><p>We make sure to look around after a move.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.at_pre_puppet">
<code class="sig-name descname">at_pre_puppet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">account</span></em>, <em class="sig-param"><span class="n">session</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultCharacter.at_pre_puppet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.at_pre_puppet" title="Permalink to this definition"></a></dt>
<dd><p>Return the character from storage in None location in <strong>at_post_unpuppet</strong>.
:param account: This is the connecting account.
:type account: DefaultAccount
:param session: Session controlling the connection.
:type session: Session</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.at_post_puppet">
<code class="sig-name descname">at_post_puppet</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultCharacter.at_post_puppet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.at_post_puppet" title="Permalink to this definition"></a></dt>
<dd><p>Called just after puppeting has been completed and all
Account&lt;-&gt;Object links have been established.</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>
<p class="rubric">Notes</p>
<p>You can use <strong>self.account</strong> and <strong>self.sessions.get()</strong> to get
account and sessions at this point; the last entry in the
list from <strong>self.sessions.get()</strong> is the latest Session
puppeting this Object.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.at_post_unpuppet">
<code class="sig-name descname">at_post_unpuppet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">account</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">session</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultCharacter.at_post_unpuppet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.at_post_unpuppet" title="Permalink to this definition"></a></dt>
<dd><p>We stove away the character when the account goes ooc/logs off,
otherwise the character object will remain in the room also
after the account logged off (“headless”, so to say).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>account</strong> (<a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a>) The account object that just disconnected
from this object.</p></li>
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) Session controlling the connection that
just disconnected.</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>reason</strong> (<em>str</em>) If given, adds a reason for the unpuppet. This
is set when the user is auto-unpuppeted due to being link-dead.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.idle_time">
<em class="property">property </em><code class="sig-name descname">idle_time</code><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.idle_time" title="Permalink to this definition"></a></dt>
<dd><p>Returns the idle time of the least idle session in seconds. If
no sessions are connected it returns nothing.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultCharacter.connection_time">
<em class="property">property </em><code class="sig-name descname">connection_time</code><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.connection_time" title="Permalink to this definition"></a></dt>
<dd><p>Returns the maximum connection time of all connected sessions
in seconds. Returns nothing if there are no sessions.</p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.objects.objects.DefaultCharacter.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.objects.objects.DefaultObject.DoesNotExist" title="evennia.objects.objects.DefaultObject.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.objects.objects.DefaultCharacter.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.objects.objects.DefaultObject.MultipleObjectsReturned" title="evennia.objects.objects.DefaultObject.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultCharacter.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.objects.objects.DefaultCharacter'</em><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultCharacter.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'DefaultCharacter'</em><a class="headerlink" href="#evennia.objects.objects.DefaultCharacter.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.objects.objects.DefaultRoom">
<em class="property">class </em><code class="sig-prename descclassname">evennia.objects.objects.</code><code class="sig-name descname">DefaultRoom</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultRoom"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultRoom" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
<p>This is the base room object. Its just like any Object except its
location is always <strong>None</strong>.</p>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultRoom.create">
<em class="property">classmethod </em><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">account</span><span class="p">:</span> <span class="n">DefaultAccount</span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">caller</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject">evennia.objects.objects.DefaultObject</a></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">method</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'create'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultRoom.create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultRoom.create" title="Permalink to this definition"></a></dt>
<dd><p>Creates a basic Room with default parameters, unless otherwise
specified or extended.</p>
<p>Provides a friendlier interface to the utils.create_object() 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 Room.</p>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>account</strong> (<a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a><em>, </em><em>optional</em>) Account to associate this Room with. If
given, it will be given specific control/edit permissions to this
object (along with normal Admin perms). If not given, default</p></li>
<li><p><strong>caller</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object which is creating this one.</p></li>
<li><p><strong>description</strong> (<em>str</em>) Brief description for this object.</p></li>
<li><p><strong>ip</strong> (<em>str</em>) IP address of creator (for object auditing).</p></li>
<li><p><strong>method</strong> (<em>str</em>) The method used to create the room. Defaults to “create”.</p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>tuple</em> A tuple <strong>(Object, error)</strong> with the newly created Room of the given typeclass,
or <strong>None</strong> if there was an error. If there was an error, <strong>error</strong> will be a list of
error strings.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultRoom.basetype_setup">
<code class="sig-name descname">basetype_setup</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultRoom.basetype_setup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultRoom.basetype_setup" title="Permalink to this definition"></a></dt>
<dd><p>Simple room setup setting locks to make sure the room cannot be picked up.</p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.objects.objects.DefaultRoom.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.objects.objects.DefaultRoom.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.objects.objects.DefaultObject.DoesNotExist" title="evennia.objects.objects.DefaultObject.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.objects.objects.DefaultRoom.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.objects.objects.DefaultRoom.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.objects.objects.DefaultObject.MultipleObjectsReturned" title="evennia.objects.objects.DefaultObject.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultRoom.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.objects.objects.DefaultRoom'</em><a class="headerlink" href="#evennia.objects.objects.DefaultRoom.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultRoom.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'DefaultRoom'</em><a class="headerlink" href="#evennia.objects.objects.DefaultRoom.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.objects.objects.ExitCommand">
<em class="property">class </em><code class="sig-prename descclassname">evennia.objects.objects.</code><code class="sig-name descname">ExitCommand</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#ExitCommand"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ExitCommand" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.default.muxcommand.MuxCommand</span></code></a></p>
<p>This is a command that simply cause the caller to traverse
the object it is attached to.</p>
<dl class="py attribute">
<dt id="evennia.objects.objects.ExitCommand.obj">
<code class="sig-name descname">obj</code><em class="property"> = None</em><a class="headerlink" href="#evennia.objects.objects.ExitCommand.obj" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.ExitCommand.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#ExitCommand.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ExitCommand.func" title="Permalink to this definition"></a></dt>
<dd><p>Default exit traverse if no syscommand is defined.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.ExitCommand.get_extra_info">
<code class="sig-name descname">get_extra_info</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">caller</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#ExitCommand.get_extra_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.ExitCommand.get_extra_info" title="Permalink to this definition"></a></dt>
<dd><p>Shows a bit of information on where the exit leads.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>caller</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object (usually a character) that entered an ambiguous command.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> A string with identifying information to disambiguate the command, conventionally
with a preceding space.</p>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.ExitCommand.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = []</em><a class="headerlink" href="#evennia.objects.objects.ExitCommand.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.ExitCommand.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.objects.objects.ExitCommand.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.ExitCommand.key">
<code class="sig-name descname">key</code><em class="property"> = 'command'</em><a class="headerlink" href="#evennia.objects.objects.ExitCommand.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.ExitCommand.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.objects.objects.ExitCommand.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.ExitCommand.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '', 'category': 'general', 'key': 'command', 'no_prefix': ' ', 'tags': '', 'text': '\n This is a command that simply cause the caller to traverse\n the object it is attached to.\n\n '}</em><a class="headerlink" href="#evennia.objects.objects.ExitCommand.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.objects.objects.DefaultExit">
<em class="property">class </em><code class="sig-prename descclassname">evennia.objects.objects.</code><code class="sig-name descname">DefaultExit</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultExit"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultExit" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
<p>This is the base exit object - it connects a location to another.
This is done by the exit assigning a “command” on itself with the
same name as the exit object (to do this we need to remember to
re-create the command when the object is cached since it must be
created dynamically depending on what the exit is called). This
command (which has a high priority) will thus allow us to traverse
exits simply by giving the exit-objects name on its own.</p>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultExit.exit_command">
<code class="sig-name descname">exit_command</code><a class="headerlink" href="#evennia.objects.objects.DefaultExit.exit_command" title="Permalink to this definition"></a></dt>
<dd><p>alias of <a class="reference internal" href="#evennia.objects.objects.ExitCommand" title="evennia.objects.objects.ExitCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">ExitCommand</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultExit.priority">
<code class="sig-name descname">priority</code><em class="property"> = 101</em><a class="headerlink" href="#evennia.objects.objects.DefaultExit.priority" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultExit.create_exit_cmdset">
<code class="sig-name descname">create_exit_cmdset</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">exidbobj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultExit.create_exit_cmdset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultExit.create_exit_cmdset" title="Permalink to this definition"></a></dt>
<dd><p>Helper function for creating an exit command set + command.</p>
<p>The command of this cmdset has the same name as the Exit
object and allows the exit to react when the account enter the
exits name, triggering the movement between rooms.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>exidbobj</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The DefaultExit object to base the command on.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultExit.create">
<em class="property">classmethod </em><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">location</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#evennia.objects.objects.DefaultRoom" title="evennia.objects.objects.DefaultRoom">evennia.objects.objects.DefaultRoom</a></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">destination</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#evennia.objects.objects.DefaultRoom" title="evennia.objects.objects.DefaultRoom">evennia.objects.objects.DefaultRoom</a></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">account</span><span class="p">:</span> <span class="n">DefaultAccount</span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">caller</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject">evennia.objects.objects.DefaultObject</a></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">method</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'create'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span> &#x2192; tuple<a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultExit.create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultExit.create" title="Permalink to this definition"></a></dt>
<dd><p>Creates a basic Exit with default parameters, unless otherwise
specified or extended.</p>
<p>Provides a friendlier interface to the utils.create_object() function.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em>) Name of the new Exit, as it should appear from the
source room.</p></li>
<li><p><strong>location</strong> (<em>Room</em>) The room to create this exit in.</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>account</strong> (<em>DefaultAccountDB</em>) Account to associate this Exit with.</p></li>
<li><p><strong>caller</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The Object creating this Object.</p></li>
<li><p><strong>description</strong> (<em>str</em>) Brief description for this object.</p></li>
<li><p><strong>ip</strong> (<em>str</em>) IP address of creator (for object auditing).</p></li>
<li><p><strong>destination</strong> (<em>Room</em>) The room to which this exit should go.</p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>tuple</em> A tuple <strong>(Object, errors)</strong>, where the object is the newly
created exit of the given typeclass, or <strong>None</strong> if there was an error.
If there was an error, <strong>errors</strong> will be a list of error strings.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultExit.basetype_setup">
<code class="sig-name descname">basetype_setup</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultExit.basetype_setup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultExit.basetype_setup" title="Permalink to this definition"></a></dt>
<dd><p>Setup exit-security.</p>
<p>You should normally not need to overload this - if you do make
sure you include all the functionality in this method.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultExit.at_cmdset_get">
<code class="sig-name descname">at_cmdset_get</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultExit.at_cmdset_get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultExit.at_cmdset_get" title="Permalink to this definition"></a></dt>
<dd><p>Called just before cmdsets on this object are requested by the
command handler. If changes need to be done on the fly to the
cmdset before passing them on to the cmdhandler, this is the
place to do it. This is called also if the object currently
has no cmdsets.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>caller</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a><em>, </em><a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><em>DefaultAccount</em></a><em> or </em><a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) The object requesting the cmdsets.</p></li>
<li><p><strong>current</strong> (<a class="reference internal" href="evennia.commands.cmdset.html#evennia.commands.cmdset.CmdSet" title="evennia.commands.cmdset.CmdSet"><em>CmdSet</em></a>) The current merged cmdset.</p></li>
<li><p><strong>force_init</strong> (<em>bool</em>) If <strong>True</strong>, force a re-build of the cmdset
(for example to update aliases).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultExit.at_init">
<code class="sig-name descname">at_init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultExit.at_init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultExit.at_init" title="Permalink to this definition"></a></dt>
<dd><p>This is called when this objects is re-loaded from cache. When
that happens, we make sure to remove any old ExitCmdSet cmdset
(this most commonly occurs when renaming an existing exit)</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultExit.at_traverse">
<code class="sig-name descname">at_traverse</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">traversing_object</span></em>, <em class="sig-param"><span class="n">target_location</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultExit.at_traverse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultExit.at_traverse" title="Permalink to this definition"></a></dt>
<dd><p>This implements the actual traversal. The traverse lock has
already been checked (in the Exit command) at this point.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>traversing_object</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Object traversing us.</p></li>
<li><p><strong>target_location</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) Where target is going.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultExit.at_failed_traverse">
<code class="sig-name descname">at_failed_traverse</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">traversing_object</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultExit.at_failed_traverse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultExit.at_failed_traverse" title="Permalink to this definition"></a></dt>
<dd><p>Overloads the default hook to implement a simple default error message.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>traversing_object</strong> (<a class="reference internal" href="#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><em>DefaultObject</em></a>) The object that failed traversing us.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Using the default exits, this hook will not be called if an
Attribute <strong>err_traverse</strong> is defined - this will in that case be
read for an error string instead.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.objects.objects.DefaultExit.get_return_exit">
<code class="sig-name descname">get_return_exit</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">return_all</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/objects.html#DefaultExit.get_return_exit"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.objects.DefaultExit.get_return_exit" title="Permalink to this definition"></a></dt>
<dd><p>Get the exits that pair with this one in its destination room
(i.e. returns to its location)</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>return_all</strong> (<em>bool</em>) Whether to return available results as a
queryset or single matching exit.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>Exit or queryset</em> The matching exit(s). If <strong>return_all</strong> is <strong>True</strong>, this
will be a queryset of all matching exits. Otherwise, it will be the first Exit matched.</p>
</dd>
</dl>
</dd></dl>
<dl class="py exception">
<dt id="evennia.objects.objects.DefaultExit.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.objects.objects.DefaultExit.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.objects.objects.DefaultObject.DoesNotExist" title="evennia.objects.objects.DefaultObject.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.objects.objects.DefaultExit.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.objects.objects.DefaultExit.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.objects.objects.DefaultObject.MultipleObjectsReturned" title="evennia.objects.objects.DefaultObject.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultExit.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.objects.objects.DefaultExit'</em><a class="headerlink" href="#evennia.objects.objects.DefaultExit.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.objects.objects.DefaultExit.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'DefaultExit'</em><a class="headerlink" href="#evennia.objects.objects.DefaultExit.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
</div>
</div>
</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="right" >
<a href="evennia.prototypes.html" title="evennia.prototypes"
>next</a> |</li>
<li class="right" >
<a href="evennia.objects.models.html" title="evennia.objects.models"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</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.objects.html" >evennia.objects</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.objects.objects</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> 3.2.1.
</div>
</body>
</html>