evennia/docs/2.x/api/evennia.comms.comms.html

947 lines
61 KiB
HTML
Raw Normal View History

<!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/" />
2023-10-19 20:22:27 +00:00
<title>evennia.comms.comms &#8212; Evennia 2.x documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.comms.managers" href="evennia.comms.managers.html" />
<link rel="prev" title="evennia.comms" href="evennia.comms.html" />
</head><body>
2023-10-19 20:22:27 +00:00
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.comms.managers.html" title="evennia.comms.managers"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.comms.html" title="evennia.comms"
accesskey="P">previous</a> |</li>
2023-10-19 20:22:27 +00:00
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.comms.html" accesskey="U">evennia.comms</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.comms</a></li>
</ul>
2023-06-10 08:53:19 +00:00
</div>
<div class="document">
<div class="documentwrapper">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.comms.html"
title="previous chapter">evennia.comms</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.comms.managers.html"
title="next chapter">evennia.comms.managers</a></p>
<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>
2023-10-19 20:22:27 +00:00
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
2023-10-19 20:22:27 +00:00
<h3>Doc Versions</h3>
<ul>
2023-10-19 20:22:27 +00:00
<li><a href="evennia.comms.comms.html">2.x (main branch)</a></li>
2022-11-15 20:29:38 +00:00
<ul>
2023-10-19 20:22:27 +00:00
<li><a href="../1.3.0/index.html">1.3.0 (v1.3.0 branch)</a></li>
<li><a href="../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
2022-11-15 20:29:38 +00:00
</ul>
</div>
</div>
<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>
<p>Class-level variables:
- <strong>send_to_online_only</strong> (bool, default True) - if set, will only try to</p>
<blockquote>
<div><p>send to subscribers that are actually active. This is a useful optimization.</p>
</div></blockquote>
<ul class="simple">
<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>. It is used
in front of every channel message; use <strong>{channelmessage}</strong> token to insert the
name of the current channel. Set to <strong>None</strong> if you want no prefix (or want to
handle it in a hook during message generation instead.</p></li>
<li><p><strong>channel_msg_nick_pattern**(str, default **”{alias}s*?|{alias}s+?(?P&lt;arg1&gt;.+?)”) -
this is what used when a channel subscriber gets a channel nick assigned to this
channel. The nickhandler uses the pattern to pick out this channels name from user
input. The **{alias}</strong> token will get both the channels key and any set/custom aliases
per subscriber. You need to allow for an <strong>&lt;arg1&gt;</strong> regex group to catch any message
that should be send to the channel. You usually dont need to change this pattern
unless you are changing channel command-style entirely.</p></li>
<li><p><strong>channel_msg_nick_replacement</strong> (str, default <strong>“channel {channelname} = $1”</strong> - this
is used by the nickhandler to generate a replacement string once the nickhandler (using
the <strong>channel_msg_nick_pattern</strong>) identifies that the channel should be addressed
to send a message to it. The <strong>&lt;arg1&gt;</strong> regex pattern match from <strong>channel_msg_nick_pattern</strong>
will end up at the <strong>$1</strong> position in the replacement. Together, this allows you do e.g.
public Hello and have that become a mapping to <strong>channel public = Hello</strong>. By default,
the account-level <strong>channel</strong> command is used. If you were to rename that command you must
tweak the output to something like <strong>yourchannelcommandname {channelname} = $1</strong>.</p></li>
</ul>
<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">
2023-10-19 20:22:27 +00:00
<code class="sig-name descname">channel_msg_nick_replacement</code><em class="property"> = '&#64;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>
</div>
</div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.comms.managers.html" title="evennia.comms.managers"
>next</a> |</li>
<li class="right" >
<a href="evennia.comms.html" title="evennia.comms"
>previous</a> |</li>
2023-10-19 20:22:27 +00:00
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.comms.html" >evennia.comms</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.comms</a></li>
</ul>
</div>
2023-10-19 20:22:27 +00:00
<div class="footer" role="contentinfo">
2023-10-19 20:22:27 +00:00
&#169; Copyright 2023, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>