<spanid="evennia-comms-channelhandler"></span><h1>evennia.comms.channelhandler<aclass="headerlink"href="#module-evennia.comms.channelhandler"title="Permalink to this headline">¶</a></h1>
<p>The channel handler, accessed from this module as CHANNEL_HANDLER is a
singleton that handles the stored set of channels and how they are
represented against the cmdhandler.</p>
<p>If there is a channel named ‘newbie’, we want to be able to just write</p>
<blockquote>
<div><p>newbie Hello!</p>
</div></blockquote>
<p>For this to work, ‘newbie’, the name of the channel, must be
identified by the cmdhandler as a command name. The channelhandler
stores all channels as custom ‘commands’ that the cmdhandler can
import and look through.</p>
<p>> Warning - channel names take precedence over command names, so make
sure to not pick clashing channel names.</p>
<p>Unless deleting a channel you normally don’t need to bother about the
channelhandler at all - the create_channel method handles the update.</p>
<p>To delete a channel cleanly, delete the channel object, then call
update() on the channelhandler. Or use Channel.objects.delete() which
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.comms.channelhandler.</code><codeclass="sig-name descname">ChannelCommand</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelCommand"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">is_channel</code><emclass="property"> = True</em><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.is_channel"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'general'</em><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">help_category</code><emclass="property"> = 'channel names'</em><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.help_category"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">obj</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.obj"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">arg_regex</code><emclass="property"> = re.compile('\\s.*?|/history.*?', re.IGNORECASE)</em><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.arg_regex"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">parse</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelCommand.parse"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.parse"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">func</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelCommand.func"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.func"title="Permalink to this definition">¶</a></dt>
<dd><p>Create a new message and send it to channel, using
<codeclass="sig-name descname">get_extra_info</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">caller</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelCommand.get_extra_info"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.get_extra_info"title="Permalink to this definition">¶</a></dt>
<dd><p>Let users know that this command is for communicating on a channel.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>caller</strong> (<aclass="reference internal"href="evennia.typeclasses.models.html#evennia.typeclasses.models.TypedObject"title="evennia.typeclasses.models.TypedObject"><em>TypedObject</em></a>) – A Character or Account who has entered an ambiguous command.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>A string with identifying information to disambiguate the object, conventionally with a preceding space.</p>
<codeclass="sig-name descname">aliases</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.aliases"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">lock_storage</code><emclass="property"> = 'cmd:all();'</em><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.lock_storage"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">search_index_entry</code><emclass="property"> = {'aliases': '', 'category': 'channel names', 'key': 'general', 'tags': '', 'text': '\n {channelkey} channel\n\n {channeldesc}\n\n Usage:\n {lower_channelkey} <message>\n {lower_channelkey}/history [start]\n {lower_channelkey} off - mutes the channel\n {lower_channelkey} on - unmutes the channel\n\n Switch:\n history: View 20 previous messages, either from the end or\n from <start> number of messages from the end.\n\n Example:\n {lower_channelkey} Hello World!\n {lower_channelkey}/history\n {lower_channelkey}/history 30\n\n '}</em><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelCommand.search_index_entry"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.comms.channelhandler.</code><codeclass="sig-name descname">ChannelHandler</code><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelHandler.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelHandler.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initializes the channel handler’s internal state.</p>
<codeclass="sig-name descname">clear</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelHandler.clear"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelHandler.clear"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">add</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">channel</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelHandler.add"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelHandler.add"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">add_channel</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">channel</span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelHandler.add_channel"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">remove</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">channel</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelHandler.remove"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelHandler.remove"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">update</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelHandler.update"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelHandler.update"title="Permalink to this definition">¶</a></dt>
<dd><p>Updates the handler completely, including removing old removed
Channel objects. This must be called after deleting a Channel.</p>
<codeclass="sig-name descname">get</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">channelname</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelHandler.get"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelHandler.get"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get_cmdset</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">source_object</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/comms/channelhandler.html#ChannelHandler.get_cmdset"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.comms.channelhandler.ChannelHandler.get_cmdset"title="Permalink to this definition">¶</a></dt>