evennia/docs/0.9.5/api/evennia.contrib.rpsystem.html
Griatch e34f258a92 Revert "Updated HTML docs."
This reverts commit 51d5840b8b.
2022-11-14 22:43:45 +01:00

1278 lines
No EOL
85 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.contrib.rpsystem &#8212; Evennia 0.9.5 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>
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 0.9.5</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.rpsystem</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.contrib.rpsystem">
<span id="evennia-contrib-rpsystem"></span><h1>evennia.contrib.rpsystem<a class="headerlink" href="#module-evennia.contrib.rpsystem" title="Permalink to this headline"></a></h1>
<p>Roleplaying base system for Evennia</p>
<p>Contribution - Griatch, 2015</p>
<p>This module contains the ContribRPObject, ContribRPRoom and
ContribRPCharacter typeclasses. If you inherit your
objects/rooms/character from these (or make them the defaults) from
these you will get the following features:</p>
<blockquote>
<div><ul class="simple">
<li><p>Objects/Rooms will get the ability to have poses and will report</p></li>
</ul>
<p>the poses of items inside them (the latter most useful for Rooms).
- Characters will get poses and also sdescs (short descriptions)
that will be used instead of their keys. They will gain commands
for managing recognition (custom sdesc-replacement), masking
themselves as well as an advanced free-form emote command.</p>
</div></blockquote>
<p>To use, simply import the typclasses you want from this module and use
them to create your objects, or set them to default.</p>
<p>In more detail, This RP base system introduces the following features
to a game, common to many RP-centric games:</p>
<blockquote>
<div><ul class="simple">
<li><dl class="simple">
<dt>emote system using director stance emoting (names/sdescs).</dt><dd><p>This uses a customizable replacement noun (/me, &#64; etc) to
represent you in the emote. You can use /sdesc, /nick, /key or
/alias to reference objects in the room. You can use any
number of sdesc sub-parts to differentiate a local sdesc, or
use /1-sdesc etc to differentiate them. The emote also
identifies nested says.</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>sdesc obscuration of real character names for use in emotes</dt><dd><p>and in any referencing such as object.search(). This relies
on an SdescHandler <strong>sdesc</strong> being set on the Character and
makes use of a custom Character.get_display_name hook. If
sdesc is not set, the characters <strong>key</strong> is used instead. This
is particularly used in the emoting system.</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>recog system to assign your own nicknames to characters, can then</dt><dd><p>be used for referencing. The user may recog a user and assign
any personal nick to them. This will be shown in descriptions
and used to reference them. This is making use of the nick
functionality of Evennia.</p>
</dd>
</dl>
</li>
<li><p>masks to hide your identity (using a simple lock).</p></li>
<li><dl class="simple">
<dt>pose system to set room-persistent poses, visible in room</dt><dd><p>descriptions and when looking at the person/object. This is a
simple Attribute that modifies how the characters is viewed when
in a room as sdesc + pose.</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>in-emote says, including seamless integration with language</dt><dd><p>obscuration routine (such as contrib/rplanguage.py)</p>
</dd>
</dl>
</li>
</ul>
</div></blockquote>
<p>Examples:</p>
<p>&gt; look
Tavern
The tavern is full of nice people</p>
<p><em>A tall man</em> is standing by the bar.</p>
<p>Above is an example of a player with an sdesc “a tall man”. It is also
an example of a static <em>pose</em>: The “standing by the bar” has been set
by the player of the tall man, so that people looking at him can tell
at a glance what is going on.</p>
<p>&gt; emote /me looks at /tall and says “Hello!”</p>
<dl class="simple">
<dt>I see:</dt><dd><p>Griatch looks at Tall man and says “Hello”.</p>
</dd>
<dt>Tall man (assuming his name is Tom) sees:</dt><dd><p>The godlike figure looks at Tom and says “Hello”.</p>
</dd>
</dl>
<p>Verbose Installation Instructions:</p>
<blockquote>
<div><ol class="arabic">
<li><p>In typeclasses/character.py:
Import the <strong>ContribRPCharacter</strong> class:</p>
<blockquote>
<div><p><strong>from evennia.contrib.rpsystem import ContribRPCharacter</strong></p>
</div></blockquote>
<dl class="simple">
<dt>Inherit ContribRPCharacter:</dt><dd><p>Change “class Character(DefaultCharacter):” to
<strong>class Character(ContribRPCharacter):</strong></p>
</dd>
<dt>If you have any overriden calls in <strong>at_object_creation(self)</strong>:</dt><dd><p>Add <strong>super().at_object_creation()</strong> as the top line.</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>In <strong>typeclasses/rooms.py</strong>:</dt><dd><p>Import the <strong>ContribRPRoom</strong> class:
<strong>from evennia.contrib.rpsystem import ContribRPRoom</strong></p>
</dd>
<dt>Inherit <strong>ContribRPRoom</strong>:</dt><dd><p>Change <strong>class Room(DefaultRoom):</strong> to
<strong>class Room(ContribRPRoom):</strong></p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>In <strong>typeclasses/objects.py</strong></dt><dd><p>Import the <strong>ContribRPObject</strong> class:
<strong>from evennia.contrib.rpsystem import ContribRPObject</strong></p>
</dd>
<dt>Inherit <strong>ContribRPObject</strong>:</dt><dd><p>Change <strong>class Object(DefaultObject):</strong> to
<strong>class Object(ContribRPObject):</strong></p>
</dd>
</dl>
</li>
<li><p>Reload the server (&#64;reload or from console: “evennia reload”)</p></li>
<li><dl class="simple">
<dt>Force typeclass updates as required. Example for your character:</dt><dd><p>&#64;type/reset/force me = typeclasses.characters.Character</p>
</dd>
</dl>
</li>
</ol>
</div></blockquote>
<dl class="py exception">
<dt id="evennia.contrib.rpsystem.EmoteError">
<em class="property">exception </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">EmoteError</code><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#EmoteError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.EmoteError" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.rpsystem.SdescError">
<em class="property">exception </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">SdescError</code><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#SdescError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.SdescError" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.rpsystem.RecogError">
<em class="property">exception </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">RecogError</code><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#RecogError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RecogError" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.rpsystem.LanguageError">
<em class="property">exception </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">LanguageError</code><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#LanguageError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.LanguageError" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.rpsystem.ordered_permutation_regex">
<code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">ordered_permutation_regex</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sentence</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ordered_permutation_regex"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ordered_permutation_regex" title="Permalink to this definition"></a></dt>
<dd><p>Builds a regex that matches ordered permutations of a sentences
words.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>sentence</strong> (<em>str</em>) The sentence to build a match pattern to</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>regex (re object)</em> </p>
<dl class="simple">
<dt>Compiled regex object represented the</dt><dd><p>possible ordered permutations of the sentence, from longest to
shortest.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Example</p>
<p>The sdesc_regex for an sdesc of ” very tall man” will
result in the following allowed permutations,
regex-matched in inverse order of length (case-insensitive):
“the very tall man”, “the very tall”, “very tall man”,
“very tall”, “the very”, “tall man”, “the”, “very”, “tall”,
and “man”.
We also add regex to make sure it also accepts num-specifiers,
like /2-tall.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.rpsystem.regex_tuple_from_key_alias">
<code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">regex_tuple_from_key_alias</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/contrib/rpsystem.html#regex_tuple_from_key_alias"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.regex_tuple_from_key_alias" title="Permalink to this definition"></a></dt>
<dd><p>This will build a regex tuple for any object, not just from those
with sdesc/recog handlers. Its used as a legacy mechanism for
being able to mix this contrib with objects not using sdescs, but
note that creating the ordered permutation regex dynamically for
every object will add computational overhead.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) This objects key and eventual aliases will
be used to build the tuple.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>regex_tuple (tuple)</em> </p>
<dl class="simple">
<dt>A tuple</dt><dd><p>(ordered_permutation_regex, obj, key/alias)</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.rpsystem.parse_language">
<code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">parse_language</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">speaker</span></em>, <em class="sig-param"><span class="n">emote</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#parse_language"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.parse_language" title="Permalink to this definition"></a></dt>
<dd><p>Parse the emote for language. This is
used with a plugin for handling languages.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>speaker</strong> (<em>Object</em>) The object speaking.</p></li>
<li><p><strong>emote</strong> (<em>str</em>) An emote possibly containing
language references.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>(emote, mapping) (tuple)</em> </p>
<dl class="simple">
<dt>A tuple where the</dt><dd><p><strong>emote</strong> is the emote string with all says
(including quotes) replaced with reference
markers on the form {##n} where n is a running
number. The <strong>mapping</strong> is a dictionary between
the markers and a tuple (langname, saytext), where
langname can be None.</p>
</dd>
</dl>
</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference internal" href="evennia.contrib.rplanguage.html#evennia.contrib.rplanguage.LanguageError" title="evennia.contrib.rplanguage.LanguageError"><strong>rplanguage.LanguageError</strong></a> If an invalid language was specified.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Note that no errors are raised if the wrong language identifier
is given.
This data, together with the identity of the speaker, is
intended to be used by the “listener” later, since with this
information the language skill of the speaker can be offset to
the language skill of the listener to determine how much
information is actually conveyed.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.rpsystem.parse_sdescs_and_recogs">
<code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">parse_sdescs_and_recogs</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sender</span></em>, <em class="sig-param"><span class="n">candidates</span></em>, <em class="sig-param"><span class="n">string</span></em>, <em class="sig-param"><span class="n">search_mode</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#parse_sdescs_and_recogs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.parse_sdescs_and_recogs" title="Permalink to this definition"></a></dt>
<dd><p>Read a raw emote and parse it into an intermediary
format for distributing to all observers.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sender</strong> (<em>Object</em>) The object sending the emote. This objects
recog data will be considered in the parsing.</p></li>
<li><p><strong>candidates</strong> (<em>iterable</em>) A list of objects valid for referencing
in the emote.</p></li>
</ul>
</dd>
</dl>
<p>string (str): The string (like an emote) we want to analyze for keywords.
search_mode (bool, optional): If <strong>True</strong>, the “emote” is a query string</p>
<blockquote>
<div><p>we want to analyze. If so, the return value is changed.</p>
</div></blockquote>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>(emote, mapping) (tuple)</em> </p>
<dl class="simple">
<dt>If <strong>search_mode</strong> is <strong>False</strong></dt><dd><p>(default), a tuple where the emote is the emote string, with
all references replaced with internal-representation {#dbref}
markers and mapping is a dictionary <strong>{“#dbref”:obj, …}</strong>.</p>
</dd>
<dt>result (list): If <strong>search_mode</strong> is <strong>True</strong> we are</dt><dd><p>performing a search query on <strong>string</strong>, looking for a specific
object. A list with zero, one or more matches.</p>
</dd>
</dl>
</p>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><strong>EmoteException</strong> For various ref-matching errors.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The parser analyzes and should understand the following
_PREFIX-tagged structures in the emote:
- self-reference (/me)
- recogs (any part of it) stored on emoter, matching obj in <strong>candidates</strong>.
- sdesc (any part of it) from any obj in <strong>candidates</strong>.
- N-sdesc, N-recog separating multi-matches (1-tall, 2-tall)
- says, “…” are</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.rpsystem.send_emote">
<code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">send_emote</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sender</span></em>, <em class="sig-param"><span class="n">receivers</span></em>, <em class="sig-param"><span class="n">emote</span></em>, <em class="sig-param"><span class="n">anonymous_add</span><span class="o">=</span><span class="default_value">'first'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#send_emote"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.send_emote" title="Permalink to this definition"></a></dt>
<dd><p>Main access function for distribute an emote.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sender</strong> (<em>Object</em>) The one sending the emote.</p></li>
<li><p><strong>receivers</strong> (<em>iterable</em>) Receivers of the emote. These
will also form the basis for which sdescs are
valid to use in the emote.</p></li>
<li><p><strong>emote</strong> (<em>str</em>) The raw emote string as input by emoter.</p></li>
<li><p><strong>anonymous_add</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) If <strong>sender</strong> is not
self-referencing in the emote, this will auto-add
<strong>sender</strong>s data to the emote. Possible values are
- None: No auto-add at anonymous emote
- last: Add sender to the end of emote as [sender]
- first: Prepend sender to start of emote.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.SdescHandler">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">SdescHandler</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/contrib/rpsystem.html#SdescHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.SdescHandler" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>This Handler wraps all operations with sdescs. We
need to use this since we do a lot preparations on
sdescs when updating them, in order for them to be
efficient to search for and query.</p>
<p>The handler stores data in the following Attributes</p>
<blockquote>
<div><p>_sdesc - a string
_regex - an empty dictionary</p>
</div></blockquote>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.SdescHandler.__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/contrib/rpsystem.html#SdescHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.SdescHandler.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize the handler</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) The entity on which this handler is stored.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.SdescHandler.add">
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sdesc</span></em>, <em class="sig-param"><span class="n">max_length</span><span class="o">=</span><span class="default_value">60</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#SdescHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.SdescHandler.add" title="Permalink to this definition"></a></dt>
<dd><p>Add a new sdesc to object, replacing the old one.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sdesc</strong> (<em>str</em>) The sdesc to set. This may be stripped
of control sequences before setting.</p></li>
<li><p><strong>max_length</strong> (<em>int</em><em>, </em><em>optional</em>) The max limit of the sdesc.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>sdesc (str)</em> The actually set sdesc.</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="#evennia.contrib.rpsystem.SdescError" title="evennia.contrib.rpsystem.SdescError"><strong>SdescError</strong></a> If the sdesc is empty, can not be set or is</p></li>
<li><p><strong>longer than max_length.</strong> </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.SdescHandler.get">
<code class="sig-name descname">get</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#SdescHandler.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.SdescHandler.get" title="Permalink to this definition"></a></dt>
<dd><p>Simple getter. The sdesc should never be allowed to
be empty, but if it is we must fall back to the key.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.SdescHandler.get_regex_tuple">
<code class="sig-name descname">get_regex_tuple</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#SdescHandler.get_regex_tuple"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.SdescHandler.get_regex_tuple" title="Permalink to this definition"></a></dt>
<dd><p>Return data for sdesc/recog handling</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>tup (tuple)</em> tuple (sdesc_regex, obj, sdesc)</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.RecogHandler">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">RecogHandler</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/contrib/rpsystem.html#RecogHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RecogHandler" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>This handler manages the recognition mapping
of an Object.</p>
<p>The handler stores data in Attributes as dictionaries of
the following names:</p>
<blockquote>
<div><p>_recog_ref2recog
_recog_obj2recog
_recog_obj2regex</p>
</div></blockquote>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.RecogHandler.__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/contrib/rpsystem.html#RecogHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RecogHandler.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize the handler</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) The entity on which this handler is stored.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.RecogHandler.add">
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em>, <em class="sig-param"><span class="n">recog</span></em>, <em class="sig-param"><span class="n">max_length</span><span class="o">=</span><span class="default_value">60</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#RecogHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RecogHandler.add" title="Permalink to this definition"></a></dt>
<dd><p>Assign a custom recog (nick) to the given object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> (<em>Object</em>) The object ot associate with the recog
string. This is usually determined from the sdesc in the
room by a call to parse_sdescs_and_recogs, but can also be
given.</p></li>
<li><p><strong>recog</strong> (<em>str</em>) The replacement string to use with this object.</p></li>
<li><p><strong>max_length</strong> (<em>int</em><em>, </em><em>optional</em>) The max length of the recog string.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>recog (str)</em> The (possibly cleaned up) recog string actually set.</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference internal" href="#evennia.contrib.rpsystem.SdescError" title="evennia.contrib.rpsystem.SdescError"><strong>SdescError</strong></a> When recog could not be set or sdesc longer
than <strong>max_length</strong>.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.RecogHandler.get">
<code class="sig-name descname">get</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/contrib/rpsystem.html#RecogHandler.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RecogHandler.get" title="Permalink to this definition"></a></dt>
<dd><p>Get recog replacement string, if one exists, otherwise
get sdesc and as a last resort, the objects key.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) The object, whose sdesc to replace</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>recog (str)</em> The replacement string to use.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This method will respect a “enable_recog” lock set on
<strong>obj</strong> (True by default) in order to turn off recog
mechanism. This is useful for adding masks/hoods etc.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.RecogHandler.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/contrib/rpsystem.html#RecogHandler.all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RecogHandler.all" title="Permalink to this definition"></a></dt>
<dd><p>Get a mapping of the recogs stored in handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>recogs (dict)</em> A mapping of {recog: obj} stored in handler.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.RecogHandler.remove">
<code class="sig-name descname">remove</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/contrib/rpsystem.html#RecogHandler.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RecogHandler.remove" title="Permalink to this definition"></a></dt>
<dd><p>Clear recog for a given object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) The object for which to remove recog.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.RecogHandler.get_regex_tuple">
<code class="sig-name descname">get_regex_tuple</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/contrib/rpsystem.html#RecogHandler.get_regex_tuple"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RecogHandler.get_regex_tuple" title="Permalink to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>rec (tuple)</em> Tuple (recog_regex, obj, recog)</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.RPCommand">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">RPCommand</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#RPCommand"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RPCommand" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>simple parent</p>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.RPCommand.parse">
<code class="sig-name descname">parse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#RPCommand.parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RPCommand.parse" title="Permalink to this definition"></a></dt>
<dd><p>strip extra whitespace</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.RPCommand.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = []</em><a class="headerlink" href="#evennia.contrib.rpsystem.RPCommand.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.RPCommand.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.rpsystem.RPCommand.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.RPCommand.key">
<code class="sig-name descname">key</code><em class="property"> = 'command'</em><a class="headerlink" href="#evennia.contrib.rpsystem.RPCommand.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.RPCommand.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.rpsystem.RPCommand.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.CmdEmote">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">CmdEmote</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdEmote"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdEmote" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.rpsystem.RPCommand" title="evennia.contrib.rpsystem.RPCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.RPCommand</span></code></a></p>
<p>Emote an action, allowing dynamic replacement of
text in the emote.</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>emote text</p>
</dd>
</dl>
<p class="rubric">Example</p>
<p>emote /me looks around.
emote With a flurry /me attacks /tall man with his sword.
emote “Hello”, /me says.</p>
<p>Describes an event in the world. This allows the use of /ref
markers to replace with the short descriptions or recognized
strings of objects in the same room. These will be translated to
emotes to match each person seeing it. Use “…” for saying
things and langcode”…” without spaces to say something in
a different language.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdEmote.key">
<code class="sig-name descname">key</code><em class="property"> = 'emote'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdEmote.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdEmote.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = [':']</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdEmote.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdEmote.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdEmote.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.CmdEmote.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdEmote.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdEmote.func" title="Permalink to this definition"></a></dt>
<dd><p>Perform the emote.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdEmote.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdEmote.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdEmote.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdEmote.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.CmdSay">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">CmdSay</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdSay"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSay" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.rpsystem.RPCommand" title="evennia.contrib.rpsystem.RPCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.RPCommand</span></code></a></p>
<p>speak as your character</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>say &lt;message&gt;</p>
</dd>
</dl>
<p>Talk to those in your current location.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSay.key">
<code class="sig-name descname">key</code><em class="property"> = 'say'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSay.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSay.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = [&quot;'&quot;, '&quot;']</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSay.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSay.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSay.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.CmdSay.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdSay.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSay.func" title="Permalink to this definition"></a></dt>
<dd><p>Run the say command</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSay.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSay.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSay.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSay.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.CmdSdesc">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">CmdSdesc</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdSdesc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSdesc" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.rpsystem.RPCommand" title="evennia.contrib.rpsystem.RPCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.RPCommand</span></code></a></p>
<p>Assign yourself a short description (sdesc).</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>sdesc &lt;short description&gt;</p>
</dd>
</dl>
<p>Assigns a short description to yourself.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSdesc.key">
<code class="sig-name descname">key</code><em class="property"> = 'sdesc'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSdesc.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSdesc.locks">
<code class="sig-name descname">locks</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSdesc.locks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.CmdSdesc.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdSdesc.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSdesc.func" title="Permalink to this definition"></a></dt>
<dd><p>Assign the sdesc</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSdesc.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = []</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSdesc.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSdesc.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSdesc.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdSdesc.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all()'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdSdesc.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.CmdPose">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">CmdPose</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdPose"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdPose" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.rpsystem.RPCommand" title="evennia.contrib.rpsystem.RPCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.RPCommand</span></code></a></p>
<p>Set a static pose</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>pose &lt;pose&gt;
pose default &lt;pose&gt;
pose reset
pose obj = &lt;pose&gt;
pose default obj = &lt;pose&gt;
pose reset obj =</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<p>pose leans against the tree
pose is talking to the barkeep.
pose box = is sitting on the floor.</p>
<p>Set a static pose. This is the end of a full sentence that starts
with your sdesc. If no full stop is given, it will be added
automatically. The default pose is the pose you get when using
pose reset. Note that you can use sdescs/recogs to reference
people in your pose, but these always appear as that persons
sdesc in the emote, regardless of who is seeing it.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdPose.key">
<code class="sig-name descname">key</code><em class="property"> = 'pose'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdPose.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.CmdPose.parse">
<code class="sig-name descname">parse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdPose.parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdPose.parse" title="Permalink to this definition"></a></dt>
<dd><p>Extract the “default” alternative to the pose.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.CmdPose.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdPose.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdPose.func" title="Permalink to this definition"></a></dt>
<dd><p>Create the pose</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdPose.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = []</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdPose.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdPose.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdPose.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdPose.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdPose.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.CmdRecog">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">CmdRecog</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdRecog"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.rpsystem.RPCommand" title="evennia.contrib.rpsystem.RPCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.RPCommand</span></code></a></p>
<p>Recognize another person in the same room.</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>recog
recog sdesc as alias
forget alias</p>
</dd>
</dl>
<p class="rubric">Example</p>
<p>recog tall man as Griatch
forget griatch</p>
<p>This will assign a personal alias for a person, or forget said alias.
Using the command without arguments will list all current recogs.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdRecog.key">
<code class="sig-name descname">key</code><em class="property"> = 'recog'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdRecog.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['forget', 'recognize']</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.CmdRecog.parse">
<code class="sig-name descname">parse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdRecog.parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog.parse" title="Permalink to this definition"></a></dt>
<dd><p>Parse for the sdesc as alias structure</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.CmdRecog.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdRecog.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog.func" title="Permalink to this definition"></a></dt>
<dd><p>Assign the recog</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdRecog.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdRecog.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdRecog.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.CmdMask">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">CmdMask</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdMask"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdMask" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.rpsystem.RPCommand" title="evennia.contrib.rpsystem.RPCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.RPCommand</span></code></a></p>
<p>Wear a mask</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>mask &lt;new sdesc&gt;
unmask</p>
</dd>
</dl>
<p>This will put on a mask to hide your identity. When wearing
a mask, your sdesc will be replaced by the sdesc you pick and
peoples recognitions of you will be disabled.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdMask.key">
<code class="sig-name descname">key</code><em class="property"> = 'mask'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdMask.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdMask.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['unmask']</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdMask.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.CmdMask.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#CmdMask.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.CmdMask.func" title="Permalink to this definition"></a></dt>
<dd><p>This is the actual executing part of the command. It is
called directly after self.parse(). See the docstring of this
module for which object properties are available (beyond those
set in self.parse())</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdMask.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdMask.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.CmdMask.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.rpsystem.CmdMask.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.RPSystemCmdSet">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">RPSystemCmdSet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmdsetobj</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">key</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#RPSystemCmdSet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RPSystemCmdSet" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.cmdset.html#evennia.commands.cmdset.CmdSet" title="evennia.commands.cmdset.CmdSet"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.cmdset.CmdSet</span></code></a></p>
<p>Mix-in for adding rp-commands to default cmdset.</p>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.RPSystemCmdSet.at_cmdset_creation">
<code class="sig-name descname">at_cmdset_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#RPSystemCmdSet.at_cmdset_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.RPSystemCmdSet.at_cmdset_creation" title="Permalink to this definition"></a></dt>
<dd><p>Hook method - this should be overloaded in the inheriting
class, and should take care of populating the cmdset by use of
self.add().</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.RPSystemCmdSet.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.rpsystem.RPSystemCmdSet'</em><a class="headerlink" href="#evennia.contrib.rpsystem.RPSystemCmdSet.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.ContribRPObject">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">ContribRPObject</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPObject"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPObject" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
<p>This class is meant as a mix-in or parent for objects in an
rp-heavy game. It implements the base functionality for poses.</p>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.ContribRPObject.at_object_creation">
<code class="sig-name descname">at_object_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPObject.at_object_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPObject.at_object_creation" title="Permalink to this definition"></a></dt>
<dd><p>Called at initial creation.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.ContribRPObject.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">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><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPObject.search"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPObject.search" title="Permalink to this definition"></a></dt>
<dd><p>Returns an Object matching a search string/condition, taking
sdescs into account.</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.
<strong>Special strings:</strong>
- <strong>#&lt;num&gt;</strong>: search by unique dbref. This is always</p>
<blockquote>
<div><p>a global search.</p>
</div></blockquote>
<ul>
<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</p>
</dd>
</dl>
</li>
</ul>
</p></li>
<li><p><strong>global_search</strong> (<em>bool</em>) Search all objects globally. This is overruled
by <strong>location</strong> keyword.</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.</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
appended), 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>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>) If None, only turn off use_dbref if we are of a lower
permission than Builder. Otherwise, honor the True/False value.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>match (Object, None or list)</em> </p>
<dl class="simple">
<dt>will return an Object/None if <strong>quiet=False</strong>,</dt><dd><p>otherwise it will return a list of 0, 1 or more matches.</p>
</dd>
</dl>
</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.contrib.rpsystem.ContribRPObject.get_display_name">
<code class="sig-name descname">get_display_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPObject.get_display_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPObject.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.typeclasses.models.html#evennia.typeclasses.models.TypedObject" title="evennia.typeclasses.models.TypedObject"><em>TypedObject</em></a>) The object or account that is looking
at/getting inforamtion for this object.</p>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><p><strong>pose</strong> (<em>bool</em>) Include the pose (if available) in the return.</p>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>name (str)</em> A string of the sdesc containing the name of the object,
if this is defined.</p>
<blockquote>
<div><p>including the DBREF if this user is privileged to control
said object.</p>
</div></blockquote>
</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The RPObject version doesnt add color to its display.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.ContribRPObject.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><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPObject.return_appearance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPObject.return_appearance" title="Permalink to this definition"></a></dt>
<dd><p>This formats a description. It is the hook a look command
should call.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>looker</strong> (<em>Object</em>) Object doing the looking.</p>
</dd>
</dl>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.rpsystem.ContribRPObject.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPObject.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject.DoesNotExist" title="evennia.objects.objects.DefaultObject.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.rpsystem.ContribRPObject.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPObject.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject.MultipleObjectsReturned" title="evennia.objects.objects.DefaultObject.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.ContribRPObject.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.rpsystem.ContribRPObject'</em><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPObject.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.ContribRPObject.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'ContribRPObject'</em><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPObject.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.ContribRPRoom">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">ContribRPRoom</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPRoom"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPRoom" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.rpsystem.ContribRPObject" title="evennia.contrib.rpsystem.ContribRPObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.ContribRPObject</span></code></a></p>
<p>Dummy inheritance for rooms.</p>
<dl class="py exception">
<dt id="evennia.contrib.rpsystem.ContribRPRoom.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPRoom.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.rpsystem.ContribRPObject.DoesNotExist" title="evennia.contrib.rpsystem.ContribRPObject.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.ContribRPObject.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.rpsystem.ContribRPRoom.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPRoom.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.contrib.rpsystem.ContribRPObject.MultipleObjectsReturned" title="evennia.contrib.rpsystem.ContribRPObject.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.ContribRPObject.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.ContribRPRoom.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.rpsystem.ContribRPRoom'</em><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPRoom.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.ContribRPRoom.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'ContribRPRoom'</em><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPRoom.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.rpsystem.</code><code class="sig-name descname">ContribRPCharacter</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPCharacter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultCharacter" title="evennia.objects.objects.DefaultCharacter"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultCharacter</span></code></a>, <a class="reference internal" href="#evennia.contrib.rpsystem.ContribRPObject" title="evennia.contrib.rpsystem.ContribRPObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.ContribRPObject</span></code></a></p>
<p>This is a character class that has poses, sdesc and recog.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.sdesc">
<code class="sig-name descname">sdesc</code><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPCharacter.sdesc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.sdesc" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.recog">
<code class="sig-name descname">recog</code><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPCharacter.recog"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.recog" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.get_display_name">
<code class="sig-name descname">get_display_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPCharacter.get_display_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.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.typeclasses.models.html#evennia.typeclasses.models.TypedObject" title="evennia.typeclasses.models.TypedObject"><em>TypedObject</em></a>) The object or account that is looking
at/getting inforamtion for this object.</p>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><p><strong>pose</strong> (<em>bool</em>) Include the pose (if available) in the return.</p>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>name (str)</em> A string of the sdesc containing the name of the object,
if this is defined.</p>
<blockquote>
<div><p>including the DBREF if this user is privileged to control
said object.</p>
</div></blockquote>
</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The RPCharacter version of this method colors its display to make
characters stand out from other objects.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.at_object_creation">
<code class="sig-name descname">at_object_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPCharacter.at_object_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.at_object_creation" title="Permalink to this definition"></a></dt>
<dd><p>Called at initial creation.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.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="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPCharacter.at_before_say"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.at_before_say" title="Permalink to this definition"></a></dt>
<dd><p>Called before the object says or whispers anything, return modified message.</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"><p><strong>whisper</strong> (<em>bool</em>) If True, this is a whisper rather than a say.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.process_sdesc">
<code class="sig-name descname">process_sdesc</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sdesc</span></em>, <em class="sig-param"><span class="n">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/contrib/rpsystem.html#ContribRPCharacter.process_sdesc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.process_sdesc" title="Permalink to this definition"></a></dt>
<dd><p>Allows to customize how your sdesc is displayed (primarily by
changing colors).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sdesc</strong> (<em>str</em>) The sdesc to display.</p></li>
<li><p><strong>obj</strong> (<em>Object</em>) The object to which the adjoining sdesc
belongs. If this object is equal to yourself, then
you are viewing yourself (and sdesc is your key).
This is not used by default.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>sdesc (str)</em> </p>
<dl class="simple">
<dt>The processed sdesc ready</dt><dd><p>for display.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.process_recog">
<code class="sig-name descname">process_recog</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">recog</span></em>, <em class="sig-param"><span class="n">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/contrib/rpsystem.html#ContribRPCharacter.process_recog"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.process_recog" title="Permalink to this definition"></a></dt>
<dd><p>Allows to customize how a recog string is displayed.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>recog</strong> (<em>str</em>) The recog string. It has already been
translated from the original sdesc at this point.</p></li>
<li><p><strong>obj</strong> (<em>Object</em>) The object the recog:ed string belongs to.
This is not used by default.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>recog (str)</em> The modified recog string.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.process_language">
<code class="sig-name descname">process_language</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text</span></em>, <em class="sig-param"><span class="n">speaker</span></em>, <em class="sig-param"><span class="n">language</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpsystem.html#ContribRPCharacter.process_language"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.process_language" title="Permalink to this definition"></a></dt>
<dd><p>Allows to process the spoken text, for example
by obfuscating language based on your and the
speakers language skills. Also a good place to
put coloring.</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>) The text to process.</p></li>
<li><p><strong>speaker</strong> (<em>Object</em>) The object delivering the text.</p></li>
<li><p><strong>language</strong> (<em>str</em>) An identifier string for the language.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>text (str)</em> The optionally processed text.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This is designed to work together with a string obfuscator
such as the <strong>obfuscate_language</strong> or <strong>obfuscate_whisper</strong> in
the evennia.contrib.rplanguage module.</p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultCharacter.DoesNotExist" title="evennia.objects.objects.DefaultCharacter.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultCharacter.DoesNotExist</span></code></a>, <a class="reference internal" href="#evennia.contrib.rpsystem.ContribRPObject.DoesNotExist" title="evennia.contrib.rpsystem.ContribRPObject.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.ContribRPObject.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultCharacter.MultipleObjectsReturned" title="evennia.objects.objects.DefaultCharacter.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultCharacter.MultipleObjectsReturned</span></code></a>, <a class="reference internal" href="#evennia.contrib.rpsystem.ContribRPObject.MultipleObjectsReturned" title="evennia.contrib.rpsystem.ContribRPObject.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.contrib.rpsystem.ContribRPObject.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.rpsystem.ContribRPCharacter'</em><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.rpsystem.ContribRPCharacter.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'ContribRPCharacter'</em><a class="headerlink" href="#evennia.contrib.rpsystem.ContribRPCharacter.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.contrib.rpsystem.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com">Home page</a> </li>
<li><a href="https://github.com/evennia/evennia">Evennia Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li><a href="http://webchat.freenode.net/?channels=evennia&uio=MT1mYWxzZSY5PXRydWUmMTE9MTk1JjEyPXRydWUbb">IRC</a> -
<a href="https://discord.gg/NecFePw">Discord</a> -
<a href="https://groups.google.com/forum/#%21forum/evennia">Forums</a>
</li>
<li><a href="http://evennia.blogspot.com/">Evennia Dev blog</a> </li>
</ul>
<h3>Versions</h3>
<ul>
<li><a href="../../1.0-dev/index.html">1.0-dev (develop branch)</a></li>
<li><a href="evennia.contrib.rpsystem.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 0.9.5</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.rpsystem</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>