evennia/docs/latest/api/evennia.comms.comms.html
Evennia docbuilder action 4544902e08 Updated HTML docs.
2026-02-15 17:42:43 +00:00

1115 lines
No EOL
86 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.comms.comms &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.comms.managers" href="evennia.comms.managers.html" />
<link rel="prev" title="evennia.comms" href="evennia.comms.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.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>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.comms.html" accesskey="U">evennia.comms</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.comms</a></li>
</ul>
</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="Link to this heading"></a></h1>
<p>Base typeclass for in-game Channels.</p>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.comms.</span></span><span class="sig-name descname"><span class="pre">DefaultChannel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel" title="Link 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">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>
<ul>
<li><dl class="simple">
<dt>Properties:</dt><dd><p>mutelist
banlist
wholist</p>
</dd>
</dl>
</li>
<li><dl>
<dt>Working methods:</dt><dd><p>get_log_filename()
set_log_filename(filename)
has_connection(account) - check if the given account listens to this channel
connect(account) - connect account to this channel
disconnect(account) - disconnect account from channel
access(access_obj, access_type=listen, default=False) - check the</p>
<blockquote>
<div><p>access on this channel (default access_type is listen)</p>
</div></blockquote>
<p>create(key, creator=None, <a href="#id1"><span class="problematic" id="id2">*</span></a>args, <a href="#id3"><span class="problematic" id="id4">**</span></a>kwargs)
delete() - delete this channel
message_transform(msg, emit=False, prefix=True,</p>
<blockquote>
<div><p>sender_strings=None, external=False) - called by
the comm system and triggers the hooks below</p>
</div></blockquote>
<dl class="simple">
<dt>msg(msgobj, header=None, senders=None, sender_strings=None,</dt><dd><dl class="simple">
<dt>persistent=None, online=False, emit=False, external=False) - main</dt><dd><p>send method, builds and sends a new message to channel.</p>
</dd>
</dl>
</dd>
<dt>tempmsg(msg, header=None, senders=None) - wrapper for sending non-persistent</dt><dd><p>messages.</p>
</dd>
<dt>distribute_message(msg, online=False) - send a message to all</dt><dd><p>connected accounts on channel, optionally sending only
to accounts that are currently online (optimized for very large sends)</p>
</dd>
</dl>
<p>mute(subscriber, <a href="#id5"><span class="problematic" id="id6">**</span></a>kwargs)
unmute(subscriber, <a href="#id7"><span class="problematic" id="id8">**</span></a>kwargs)
ban(target, <a href="#id9"><span class="problematic" id="id10">**</span></a>kwargs)
unban(target, <a href="#id11"><span class="problematic" id="id12">**</span></a>kwargs)
add_user_channel_alias(user, alias, <a href="#id13"><span class="problematic" id="id14">**</span></a>kwargs)
remove_user_channel_alias(user, alias, <a href="#id15"><span class="problematic" id="id16">**</span></a>kwargs)</p>
</dd>
</dl>
</li>
</ul>
<dl>
<dt>Useful hooks:</dt><dd><p>at_channel_creation() - called once, when the channel is created
basetype_setup()
at_init()
at_first_save()
channel_prefix() - how the channel should be</p>
<blockquote>
<div><p>prefixed when returning to user. Returns a string</p>
</div></blockquote>
<dl class="simple">
<dt>format_senders(senders) - should return how to display multiple</dt><dd><p>senders to a channel</p>
</dd>
<dt>pose_transform(msg, sender_string) - should detect if the</dt><dd><p>sender is posing, and if so, modify the string</p>
</dd>
<dt>format_external(msg, senders, emit=False) - format messages sent</dt><dd><p>from outside the game, like from IRC</p>
</dd>
<dt>format_message(msg, emit=False) - format the message body before</dt><dd><p>displaying it to the user. emit generally means that the
message should not be displayed with the senders name.</p>
</dd>
</dl>
<p>channel_prefix()</p>
<p>pre_join_channel(joiner) - if returning False, abort join
post_join_channel(joiner) - called right after successful join
pre_leave_channel(leaver) - if returning False, abort leave
post_leave_channel(leaver) - called right after successful leave
at_pre_msg(message, <a href="#id17"><span class="problematic" id="id18">**</span></a>kwargs)
at_post_msg(message, <a href="#id19"><span class="problematic" id="id20">**</span></a>kwargs)
web_get_admin_url()
web_get_create_url()
web_get_detail_url()
web_get_update_url()
web_get_delete_url()</p>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.objects">
<span class="sig-name descname"><span class="pre">objects</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">&lt;evennia.comms.managers.ChannelManager</span> <span class="pre">object&gt;</span></em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.objects" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.send_to_online_only">
<span class="sig-name descname"><span class="pre">send_to_online_only</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.send_to_online_only" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.log_file">
<span class="sig-name descname"><span class="pre">log_file</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'channel_{channelname}.log'</span></em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.log_file" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.channel_prefix_string">
<span class="sig-name descname"><span class="pre">channel_prefix_string</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'[{channelname}]</span> <span class="pre">'</span></em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_prefix_string" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.channel_msg_nick_pattern">
<span class="sig-name descname"><span class="pre">channel_msg_nick_pattern</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'{alias}\\s*?|{alias}\\s+?(?P&lt;arg1&gt;.+?)'</span></em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_msg_nick_pattern" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.channel_msg_nick_replacement">
<span class="sig-name descname"><span class="pre">channel_msg_nick_replacement</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'&#64;channel</span> <span class="pre">{channelname}</span> <span class="pre">=</span> <span class="pre">$1'</span></em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_msg_nick_replacement" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.at_first_save">
<span class="sig-name descname"><span class="pre">at_first_save</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_first_save" title="Link 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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.basetype_setup">
<span class="sig-name descname"><span class="pre">basetype_setup</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.basetype_setup" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.at_channel_creation">
<span class="sig-name descname"><span class="pre">at_channel_creation</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_channel_creation" title="Link to this definition"></a></dt>
<dd><p>Called once, when the channel is first created.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.get_log_filename">
<span class="sig-name descname"><span class="pre">get_log_filename</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.get_log_filename" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.set_log_filename">
<span class="sig-name descname"><span class="pre">set_log_filename</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.set_log_filename" title="Link to this definition"></a></dt>
<dd><p>Set a custom log filename.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.has_connection">
<span class="sig-name descname"><span class="pre">has_connection</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subscriber</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.has_connection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.has_connection" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></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 property">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.mutelist">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">mutelist</span></span><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.mutelist" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.banlist">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">banlist</span></span><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.banlist" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.wholist">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">wholist</span></span><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.wholist" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.mute">
<span class="sig-name descname"><span class="pre">mute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subscriber</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.mute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.mute" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.unmute">
<span class="sig-name descname"><span class="pre">unmute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subscriber</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.unmute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.unmute" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.ban">
<span class="sig-name descname"><span class="pre">ban</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.ban"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.ban" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.unban">
<span class="sig-name descname"><span class="pre">unban</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.unban"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.unban" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.connect">
<span class="sig-name descname"><span class="pre">connect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subscriber</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.connect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.connect" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.disconnect">
<span class="sig-name descname"><span class="pre">disconnect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subscriber</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.disconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.disconnect" title="Link to this definition"></a></dt>
<dd><p>Disconnect entity from this channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>subscriber</strong> (<em>Account</em><em> of </em><em>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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.access">
<span class="sig-name descname"><span class="pre">access</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accessing_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">access_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'listen'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">no_superuser_bypass</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.access"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.access" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></dt>
<dd class="field-even"><p><em>return (bool)</em> Result of lock check.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.create">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">create</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">creator</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.create"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.create" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>aliases</strong> (<em>list</em><em> of </em><em>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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.delete">
<span class="sig-name descname"><span class="pre">delete</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.delete" title="Link to this definition"></a></dt>
<dd><p>Deletes channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.channel_prefix">
<span class="sig-name descname"><span class="pre">channel_prefix</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.channel_prefix" title="Link 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<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>str</em> The channel prefix.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.add_user_channel_alias">
<span class="sig-name descname"><span class="pre">add_user_channel_alias</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">alias</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.add_user_channel_alias" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.remove_user_channel_alias">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">remove_user_channel_alias</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">alias</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.remove_user_channel_alias" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.at_pre_msg">
<span class="sig-name descname"><span class="pre">at_pre_msg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_pre_msg" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.msg">
<span class="sig-name descname"><span class="pre">msg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">senders</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bypass_mute</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.msg" title="Link 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<span class="colon">:</span></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="#id21"><span class="problematic" id="id22">**</span></a>kwargs for
later access in hooks)</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.at_post_msg">
<span class="sig-name descname"><span class="pre">at_post_msg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_post_msg" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.pre_join_channel">
<span class="sig-name descname"><span class="pre">pre_join_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">joiner</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pre_join_channel" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.post_join_channel">
<span class="sig-name descname"><span class="pre">post_join_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">joiner</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.post_join_channel" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.pre_leave_channel">
<span class="sig-name descname"><span class="pre">pre_leave_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">leaver</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pre_leave_channel" title="Link 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<span class="colon">:</span></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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.post_leave_channel">
<span class="sig-name descname"><span class="pre">post_leave_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">leaver</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.post_leave_channel" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.at_init">
<span class="sig-name descname"><span class="pre">at_init</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.at_init" title="Link 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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.web_get_admin_url">
<span class="sig-name descname"><span class="pre">web_get_admin_url</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.web_get_admin_url" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.web_get_create_url">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">web_get_create_url</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.web_get_create_url" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.web_get_detail_url">
<span class="sig-name descname"><span class="pre">web_get_detail_url</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.web_get_detail_url" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.web_get_update_url">
<span class="sig-name descname"><span class="pre">web_get_update_url</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.web_get_update_url" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.web_get_delete_url">
<span class="sig-name descname"><span class="pre">web_get_delete_url</span></span><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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.web_get_delete_url" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.get_absolute_url">
<span class="sig-name descname"><span class="pre">get_absolute_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.get_absolute_url" title="Link 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<span class="colon">:</span></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 class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.message_transform">
<span class="sig-name descname"><span class="pre">message_transform</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.message_transform"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.message_transform" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.distribute_message">
<span class="sig-name descname"><span class="pre">distribute_message</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msgobj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">online</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.distribute_message"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.distribute_message" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.format_senders">
<span class="sig-name descname"><span class="pre">format_senders</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">senders</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_senders"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_senders" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.pose_transform">
<span class="sig-name descname"><span class="pre">pose_transform</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msgobj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sender_string</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.pose_transform"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pose_transform" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.format_external">
<span class="sig-name descname"><span class="pre">format_external</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msgobj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">senders</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">emit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_external"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_external" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.format_message">
<span class="sig-name descname"><span class="pre">format_message</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msgobj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">emit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/comms.html#DefaultChannel.format_message"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.format_message" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.pre_send_message">
<span class="sig-name descname"><span class="pre">pre_send_message</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msg</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.pre_send_message" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.post_send_message">
<span class="sig-name descname"><span class="pre">post_send_message</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msg</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></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"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.post_send_message" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.DoesNotExist">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DoesNotExist</span></span><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.DoesNotExist" title="Link 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">DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.MultipleObjectsReturned">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MultipleObjectsReturned</span></span><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.MultipleObjectsReturned" title="Link 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">MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.NotUpdated">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">NotUpdated</span></span><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.NotUpdated" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.comms.models.html#evennia.comms.models.ChannelDB.NotUpdated" title="evennia.comms.models.ChannelDB.NotUpdated"><code class="xref py py-class docutils literal notranslate"><span class="pre">NotUpdated</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.path">
<span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'evennia.comms.comms.DefaultChannel'</span></em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.comms.comms.DefaultChannel.typename">
<span class="sig-name descname"><span class="pre">typename</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'DefaultChannel'</span></em><a class="headerlink" href="#evennia.comms.comms.DefaultChannel.typename" title="Link 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">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.comms.comms</a><ul>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel"><code class="docutils literal notranslate"><span class="pre">DefaultChannel</span></code></a><ul>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.objects"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.objects</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.send_to_online_only"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.send_to_online_only</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.log_file"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.log_file</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.channel_prefix_string"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.channel_prefix_string</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.channel_msg_nick_pattern"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.channel_msg_nick_pattern</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.channel_msg_nick_replacement"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.channel_msg_nick_replacement</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.at_first_save"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.at_first_save()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.basetype_setup"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.basetype_setup()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.at_channel_creation"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.at_channel_creation()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.get_log_filename"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.get_log_filename()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.set_log_filename"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.set_log_filename()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.has_connection"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.has_connection()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.mutelist"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.mutelist</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.banlist"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.banlist</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.wholist"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.wholist</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.mute"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.mute()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.unmute"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.unmute()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.ban"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.ban()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.unban"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.unban()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.connect"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.connect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.disconnect"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.disconnect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.access"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.access()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.create"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.create()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.delete"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.delete()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.channel_prefix"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.channel_prefix()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.add_user_channel_alias"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.add_user_channel_alias()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.remove_user_channel_alias"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.remove_user_channel_alias()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.at_pre_msg"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.at_pre_msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.msg"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.at_post_msg"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.at_post_msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.pre_join_channel"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.pre_join_channel()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.post_join_channel"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.post_join_channel()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.pre_leave_channel"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.pre_leave_channel()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.post_leave_channel"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.post_leave_channel()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.at_init"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.at_init()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.web_get_admin_url"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.web_get_admin_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.web_get_create_url"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.web_get_create_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.web_get_detail_url"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.web_get_detail_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.web_get_update_url"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.web_get_update_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.web_get_delete_url"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.web_get_delete_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.get_absolute_url"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.get_absolute_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.message_transform"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.message_transform()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.distribute_message"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.distribute_message()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.format_senders"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.format_senders()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.pose_transform"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.pose_transform()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.format_external"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.format_external()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.format_message"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.format_message()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.pre_send_message"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.pre_send_message()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.post_send_message"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.post_send_message()</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.NotUpdated"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.NotUpdated</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.path"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.comms.comms.DefaultChannel.typename"><code class="docutils literal notranslate"><span class="pre">DefaultChannel.typename</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.comms.html"
title="previous chapter">evennia.comms</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.comms.managers.html"
title="next chapter">evennia.comms.managers</a></p>
</div>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.comms.comms.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li>
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.comms.managers.html" title="evennia.comms.managers"
>next</a> |</li>
<li class="right" >
<a href="evennia.comms.html" title="evennia.comms"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.comms.html" >evennia.comms</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.comms</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>