evennia/docs/1.0-dev/api/evennia.comms.comms.html
Evennia docbuilder action ecb368ddb6 Updated HTML docs
2022-02-05 15:09:22 +00:00

890 lines
No EOL
58 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.comms.comms &#8212; Evennia 1.0-dev documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<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 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.comms</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.comms.comms">
<span id="evennia-comms-comms"></span><h1>evennia.comms.comms<a class="headerlink" href="#module-evennia.comms.comms" title="Permalink to this headline"></a></h1>
<p>Base typeclass for in-game Channels.</p>
<dl class="py class">
<dt id="evennia.comms.comms.DefaultChannel">
<em class="property">class </em><code class="sig-prename descclassname">evennia.comms.comms.</code><code class="sig-name descname">DefaultChannel</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.ChannelDB" title="evennia.comms.models.ChannelDB"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.comms.models.ChannelDB</span></code></a></p>
<p>This is the base class for all Channel Comms. Inherit from this to
create different types of communication channels.</p>
<dl class="simple">
<dt>Class-level variables:</dt><dd><ul class="simple">
<li><p><strong>send_to_online_only</strong> (bool, default True) - if set, will only try to
send to subscribers that are actually active. This is a useful optimization.</p></li>
<li><p><strong>log_file</strong> (str, default <strong>“channel_{channelname}.log”</strong>). This is the
log file to which the channel history will be saved. The <strong>{channelname}</strong> tag
will be replaced by the key of the Channel. If an Attribute log_file
is set, this will be used instead. If this is None and no Attribute is found,
no history will be saved.</p></li>
<li><p><strong>channel_prefix_string</strong> (str, default <strong>“[{channelname} ]”</strong>) - this is used
as a simple template to get the channel prefix with <strong>.channel_prefix()</strong>.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.objects">
<code class="sig-name descname">objects</code><em class="property"> = &lt;evennia.comms.managers.ChannelManager object&gt;</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.objects" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.send_to_online_only">
<code class="sig-name descname">send_to_online_only</code><em class="property"> = True</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.send_to_online_only" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.log_file">
<code class="sig-name descname">log_file</code><em class="property"> = 'channel_{channelname}.log'</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.log_file" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.channel_prefix_string">
<code class="sig-name descname">channel_prefix_string</code><em class="property"> = '[{channelname}] '</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_prefix_string" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.channel_msg_nick_pattern">
<code class="sig-name descname">channel_msg_nick_pattern</code><em class="property"> = '{alias}\\s*?|{alias}\\s+?(?P&lt;arg1&gt;.+?)'</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_msg_nick_pattern" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.channel_msg_nick_replacement">
<code class="sig-name descname">channel_msg_nick_replacement</code><em class="property"> = 'channel {channelname} = $1'</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_msg_nick_replacement" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.at_first_save">
<code class="sig-name descname">at_first_save</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.at_first_save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_first_save" title="Permalink to this definition"></a></dt>
<dd><p>Called by the typeclass system the very first time the channel
is saved to the database. Generally, dont overload this but
the hooks called by this method.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.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/comms/comms.html#DefaultChannel.basetype_setup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.basetype_setup" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.at_channel_creation">
<code class="sig-name descname">at_channel_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.at_channel_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_channel_creation" title="Permalink to this definition"></a></dt>
<dd><p>Called once, when the channel is first created.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.get_log_filename">
<code class="sig-name descname">get_log_filename</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.get_log_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.get_log_filename" title="Permalink to this definition"></a></dt>
<dd><p>File name to use for channel log.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>str</em> </p>
<dl class="simple">
<dt>The filename to use (this is always assumed to be inside</dt><dd><p>settings.LOG_DIR)</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.set_log_filename">
<code class="sig-name descname">set_log_filename</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.set_log_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.set_log_filename" title="Permalink to this definition"></a></dt>
<dd><p>Set a custom log filename.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>filename</strong> (<em>str</em>) The filename to set. This is a path starting from
inside the settings.LOG_DIR location.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.has_connection">
<code class="sig-name descname">has_connection</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">subscriber</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.has_connection"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.has_connection" title="Permalink to this definition"></a></dt>
<dd><p>Checks so this account is actually listening
to this channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>subscriber</strong> (<em>Account</em><em> or </em><em>Object</em>) Entity to check.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>has_sub (bool)</em> </p>
<dl class="simple">
<dt>Whether the subscriber is subscribing to</dt><dd><p>this channel or not.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<dl class="simple">
<dt>This will first try Account subscribers and only try Object</dt><dd><p>if the Account fails.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.mutelist">
<em class="property">property </em><code class="sig-name descname">mutelist</code><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.mutelist" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.banlist">
<em class="property">property </em><code class="sig-name descname">banlist</code><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.banlist" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.wholist">
<em class="property">property </em><code class="sig-name descname">wholist</code><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.wholist" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.mute">
<code class="sig-name descname">mute</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">subscriber</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.mute"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.mute" title="Permalink to this definition"></a></dt>
<dd><p>Adds an entity to the list of muted subscribers.
A muted subscriber will no longer see channel messages,
but may use channel commands.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>subscriber</strong> (<em>Object</em><em> or </em><em>Account</em>) Subscriber to mute.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>bool</em> </p>
<dl class="simple">
<dt>True if muting was successful, False if we were already</dt><dd><p>muted.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.unmute">
<code class="sig-name descname">unmute</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">subscriber</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.unmute"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.unmute" title="Permalink to this definition"></a></dt>
<dd><p>Removes an entity from the list of muted subscribers. A muted subscriber
will no longer see channel messages, but may use channel commands.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>subscriber</strong> (<em>Object</em><em> or </em><em>Account</em>) The subscriber to unmute.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>bool</em> </p>
<dl class="simple">
<dt>True if unmuting was successful, False if we were already</dt><dd><p>unmuted.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.ban">
<code class="sig-name descname">ban</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.ban"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.ban" title="Permalink to this definition"></a></dt>
<dd><p>Ban a given user from connecting to the channel. This will not stop
users already connected, so the user must be booted for this to take
effect.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>target</strong> (<em>Object</em><em> or </em><em>Account</em>) The entity to unmute. This need not
be a subscriber.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>bool</em> </p>
<dl class="simple">
<dt>True if banning was successful, False if target was already</dt><dd><p>banned.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.unban">
<code class="sig-name descname">unban</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">target</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.unban"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.unban" title="Permalink to this definition"></a></dt>
<dd><p>Un-Ban a given user. This will not reconnect them - they will still
have to reconnect and set up aliases anew.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>target</strong> (<em>Object</em><em> or </em><em>Account</em>) The entity to unmute. This need not
be a subscriber.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>bool</em> </p>
<dl class="simple">
<dt>True if unbanning was successful, False if target was not</dt><dd><p>previously banned.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.connect">
<code class="sig-name descname">connect</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">subscriber</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.connect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.connect" title="Permalink to this definition"></a></dt>
<dd><p>Connect the user to this channel. This checks access.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>subscriber</strong> (<em>Account</em><em> or </em><em>Object</em>) the entity to subscribe
to this channel.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>success (bool)</em> </p>
<dl class="simple">
<dt>Whether or not the addition was</dt><dd><p>successful.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.disconnect">
<code class="sig-name descname">disconnect</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">subscriber</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.disconnect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.disconnect" title="Permalink to this definition"></a></dt>
<dd><p>Disconnect entity from this channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>subscriber</strong> (<em>Account of Object</em>) the
entity to disconnect.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>success (bool)</em> </p>
<dl class="simple">
<dt>Whether or not the removal was</dt><dd><p>successful.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.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">'listen'</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/comms/comms.html#DefaultChannel.access"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.access" title="Permalink to this definition"></a></dt>
<dd><p>Determines if another object has permission to access.</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> (<em>Object</em>) 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>) Turns off superuser
lock bypass. Be careful with this one.</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>return (bool)</em> Result of lock check.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.create">
<em class="property">classmethod </em><code class="sig-name descname">create</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">creator</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.create"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.create" title="Permalink to this definition"></a></dt>
<dd><p>Creates a basic Channel with default parameters, unless otherwise
specified or extended.</p>
<p>Provides a friendlier interface to the utils.create_channel() function.</p>
<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>) This must be unique.</p></li>
<li><p><strong>creator</strong> (<em>Account</em><em> or </em><em>Object</em>) Entity to associate with this channel
(used for tracking)</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>aliases</strong> (<em>list of str</em>) List of alternative (likely shorter) keynames.</p></li>
<li><p><strong>description</strong> (<em>str</em>) A description of the channel, for use in listings.</p></li>
<li><p><strong>locks</strong> (<em>str</em>) Lockstring.</p></li>
<li><p><strong>keep_log</strong> (<em>bool</em>) Log channel throughput.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>class</em>) The typeclass of the Channel (not
often used).</p></li>
<li><p><strong>ip</strong> (<em>str</em>) IP address of creator (for object auditing).</p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>channel (Channel)</em> A newly created Channel.
errors (list): A list of errors in string form, if any.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.delete">
<code class="sig-name descname">delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.delete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.delete" title="Permalink to this definition"></a></dt>
<dd><p>Deletes channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>bool</em> </p>
<dl class="simple">
<dt>If deletion was successful. Only time it can fail would be</dt><dd><p>if channel was already deleted. Even if it were to fail, all subscribers
will be disconnected.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.channel_prefix">
<code class="sig-name descname">channel_prefix</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.channel_prefix"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_prefix" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. How the channel should prefix itself for users.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>str</em> The channel prefix.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.add_user_channel_alias">
<code class="sig-name descname">add_user_channel_alias</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">user</span></em>, <em class="sig-param"><span class="n">alias</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.add_user_channel_alias"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.add_user_channel_alias" title="Permalink to this definition"></a></dt>
<dd><p>Add a personal user-alias for this channel to a given subscriber.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user</strong> (<em>Object</em><em> or </em><em>Account</em>) The one to alias this channel.</p></li>
<li><p><strong>alias</strong> (<em>str</em>) The desired alias.</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This is tightly coupled to the default <strong>channel</strong> command. If you
change that, you need to change this as well.</p>
<p>We add two nicks - one is a plain <strong>alias -&gt; channel.key</strong> that
users need to be able to reference this channel easily. The other
is a templated nick to easily be able to send messages to the
channel without needing to give the full <strong>channel</strong> command. The
structure of this nick is given by <strong>self.channel_msg_nick_pattern</strong>
and <strong>self.channel_msg_nick_replacement</strong>. By default it maps
<strong>alias &lt;msg&gt; -&gt; channel &lt;channelname&gt; = &lt;msg&gt;</strong>, so that you can
for example just write <strong>pub Hello</strong> to send a message.</p>
<p>The alias created is <strong>alias $1 -&gt; channel channel = $1</strong>, to allow
for sending to channel using the main channel command.</p>
</div>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.remove_user_channel_alias">
<em class="property">classmethod </em><code class="sig-name descname">remove_user_channel_alias</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">user</span></em>, <em class="sig-param"><span class="n">alias</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.remove_user_channel_alias"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.remove_user_channel_alias" title="Permalink to this definition"></a></dt>
<dd><p>Remove a personal channel alias from a user.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user</strong> (<em>Object</em><em> or </em><em>Account</em>) The user to remove an alias from.</p></li>
<li><p><strong>alias</strong> (<em>str</em>) The alias to remove.</p></li>
<li><p><strong>**kwargs</strong> Unused by default. Can be used to pass extra variables
into a custom implementation.</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The channel-alias actually consists of two aliases - one
channel-based one for searching channels with the alias and one
inputline one for doing the channelalias msg - call.</p>
<p>This is a classmethod because it doesnt actually operate on the
channel instance.</p>
<p>It sits on the channel because the nick structure for this is
pretty complex and needs to be located in a central place (rather
on, say, the channel command).</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.at_pre_msg">
<code class="sig-name descname">at_pre_msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.at_pre_msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_pre_msg" title="Permalink to this definition"></a></dt>
<dd><p>Called before the starting of sending the message to a receiver. This
is called before any hooks on the receiver itself. If this returns
None/False, the sending will be aborted.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) The message to send.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) Keywords passed on from <strong>.msg</strong>. This includes
<strong>senders</strong>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>str, False or None</em> </p>
<dl class="simple">
<dt>Any custom changes made to the message. If</dt><dd><p>falsy, no message will be sent.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.msg">
<code class="sig-name descname">msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">bypass_mute</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.msg" title="Permalink to this definition"></a></dt>
<dd><p>Send message to channel, causing it to be distributed to all non-muted
subscribed users of that channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) The message to send.</p></li>
<li><p><strong>senders</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>list</em><em>, </em><em>optional</em>) If not given, there is
no way to associate one or more senders with the message (like
a broadcast message or similar).</p></li>
<li><p><strong>bypass_mute</strong> (<em>bool</em><em>, </em><em>optional</em>) If set, always send, regardless of
individual mute-state of subscriber. This can be used for
global announcements or warnings/alerts.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) This will be passed on to all hooks. Use <strong>no_prefix</strong>
to exclude the channel prefix.</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The call hook calling sequence is:</p>
<ul class="simple">
<li><p><strong>msg = channel.at_pre_msg(message, **kwargs)</strong> (aborts for all if return None)</p></li>
<li><p><strong>msg = receiver.at_pre_channel_msg(msg, channel, **kwargs)</strong> (aborts for receiver if return None)</p></li>
<li><p><strong>receiver.at_channel_msg(msg, channel, **kwargs)</strong></p></li>
<li><p><strong>receiver.at_post_channel_msg(msg, channel, **kwargs)**</strong></p></li>
</ul>
<p>Called after all receivers are processed:
- <strong>channel.at_post_all_msg(message, **kwargs)</strong></p>
<p>(where the senders/bypass_mute are embedded into <a href="#id1"><span class="problematic" id="id2">**</span></a>kwargs for
later access in hooks)</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.at_post_msg">
<code class="sig-name descname">at_post_msg</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.at_post_msg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_post_msg" title="Permalink to this definition"></a></dt>
<dd><p>This is called after sending to <em>all</em> valid recipients. It is normally
used for logging/channel history.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) The message sent.</p></li>
<li><p><strong>**kwargs</strong> (<em>any</em>) Keywords passed on from <strong>msg</strong>, including <strong>senders</strong>.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.pre_join_channel">
<code class="sig-name descname">pre_join_channel</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">joiner</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.pre_join_channel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pre_join_channel" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. Runs right before a channel is joined. If this
returns a false value, channel joining is aborted.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>joiner</strong> (<em>object</em>) The joining object.</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>should_join (bool)</em> If <strong>False</strong>, channel joining is aborted.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.post_join_channel">
<code class="sig-name descname">post_join_channel</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">joiner</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.post_join_channel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.post_join_channel" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. Runs right after an object or account joins a channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>joiner</strong> (<em>object</em>) The joining object.</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>By default this adds the needed channel nicks to the joiner.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.pre_leave_channel">
<code class="sig-name descname">pre_leave_channel</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">leaver</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.pre_leave_channel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pre_leave_channel" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. Runs right before a user leaves a channel. If this returns a false
value, leaving the channel will be aborted.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>leaver</strong> (<em>object</em>) The leaving object.</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>should_leave (bool)</em> If <strong>False</strong>, channel parting is aborted.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.post_leave_channel">
<code class="sig-name descname">post_leave_channel</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">leaver</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.post_leave_channel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.post_leave_channel" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. Runs right after an object or account leaves a channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>leaver</strong> (<em>object</em>) The leaving object.</p></li>
<li><p><strong>**kwargs</strong> (<em>dict</em>) Arbitrary, optional arguments for users
overriding the call (unused by default).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.at_init">
<code class="sig-name descname">at_init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.at_init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_init" title="Permalink to this definition"></a></dt>
<dd><p>Hook method. This is always called whenever this channel is
initiated that is, whenever it its typeclass is cached from
memory. This happens on-demand first time the channel 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.comms.comms.DefaultChannel.web_get_admin_url">
<code class="sig-name descname">web_get_admin_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.web_get_admin_url"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.web_get_admin_url" title="Permalink to this definition"></a></dt>
<dd><p>Returns the URI path for the Django Admin page for this object.</p>
<p>ex. Account#1 = /admin/accounts/accountdb/1/change/</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to Django Admin page for object.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.web_get_create_url">
<em class="property">classmethod </em><code class="sig-name descname">web_get_create_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.web_get_create_url"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.web_get_create_url" title="Permalink to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to create new
instances of this object.</p>
<p>ex. Chargen = /characters/create/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of channel-create would be referenced by this method.</p>
<p>ex.
url(rchannels/create/, ChannelCreateView.as_view(), name=channel-create)</p>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can create new objects is the
developers responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object creation page, if defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.web_get_detail_url">
<code class="sig-name descname">web_get_detail_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.web_get_detail_url"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.web_get_detail_url" title="Permalink to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to view details for
this object.</p>
<p>ex. Oscar (Character) = /characters/oscar/1/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of channel-detail would be referenced by this method.</p>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;channels/(?P&lt;slug&gt;[\w\d\-]+)/$&#39;</span><span class="p">,</span>
<span class="n">ChannelDetailView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;channel-detail&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can view this object is the developers
responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object detail page, if defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.web_get_update_url">
<code class="sig-name descname">web_get_update_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.web_get_update_url"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.web_get_update_url" title="Permalink to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to update this
object.</p>
<p>ex. Oscar (Character) = /characters/oscar/1/change/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of channel-update would be referenced by this method.</p>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;channels/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/change/$&#39;</span><span class="p">,</span>
<span class="n">ChannelUpdateView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;channel-update&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can modify objects is the developers
responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object update page, if defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.web_get_delete_url">
<code class="sig-name descname">web_get_delete_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.web_get_delete_url"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.web_get_delete_url" title="Permalink to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to delete this object.</p>
<p>ex. Oscar (Character) = /characters/oscar/1/delete/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of channel-delete would be referenced by this method.</p>
<p>ex.
url(rchannels/(?P&lt;slug&gt;[wd-]+)/(?P&lt;pk&gt;[0-9]+)/delete/$,</p>
<blockquote>
<div><p>ChannelDeleteView.as_view(), name=channel-delete)</p>
</div></blockquote>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can delete this object is the developers
responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object deletion page, if defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.get_absolute_url">
<code class="sig-name descname">get_absolute_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.get_absolute_url" title="Permalink to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to view details for
this object.</p>
<p>ex. Oscar (Character) = /characters/oscar/1/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of channel-detail would be referenced by this method.</p>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;channels/(?P&lt;slug&gt;[\w\d\-]+)/$&#39;</span><span class="p">,</span>
<span class="n">ChannelDetailView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;channel-detail&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can view this object is the developers
responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object detail page, if defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.message_transform">
<code class="sig-name descname">message_transform</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.message_transform"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.message_transform" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.distribute_message">
<code class="sig-name descname">distribute_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">online</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.distribute_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.distribute_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.format_senders">
<code class="sig-name descname">format_senders</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">senders</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_senders"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_senders" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.pose_transform">
<code class="sig-name descname">pose_transform</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">sender_string</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.pose_transform"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pose_transform" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.format_external">
<code class="sig-name descname">format_external</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">senders</span></em>, <em class="sig-param"><span class="n">emit</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_external"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_external" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.format_message">
<code class="sig-name descname">format_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msgobj</span></em>, <em class="sig-param"><span class="n">emit</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.pre_send_message">
<code class="sig-name descname">pre_send_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.pre_send_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pre_send_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.comms.comms.DefaultChannel.post_send_message">
<code class="sig-name descname">post_send_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">msg</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.post_send_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.post_send_message" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py exception">
<dt id="evennia.comms.comms.DefaultChannel.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.ChannelDB.DoesNotExist" title="evennia.comms.models.ChannelDB.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.comms.models.ChannelDB.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.comms.comms.DefaultChannel.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.ChannelDB.MultipleObjectsReturned" title="evennia.comms.models.ChannelDB.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.comms.models.ChannelDB.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.comms.comms.DefaultChannel'</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.comms.comms.DefaultChannel.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'DefaultChannel'</em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.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.comms.comms.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="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>Versions</h3>
<ul>
<li><a href="evennia.comms.comms.html">1.0-dev (develop branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.comms</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>