evennia/docs/latest/api/evennia.accounts.bots.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

819 lines
No EOL
81 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.accounts.bots &#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.accounts.manager" href="evennia.accounts.manager.html" />
<link rel="prev" title="evennia.accounts.accounts" href="evennia.accounts.accounts.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.accounts.manager.html" title="evennia.accounts.manager"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.accounts.accounts.html" title="evennia.accounts.accounts"
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.accounts.html" accesskey="U">evennia.accounts</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.bots</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.accounts.bots">
<span id="evennia-accounts-bots"></span><h1>evennia.accounts.bots<a class="headerlink" href="#module-evennia.accounts.bots" title="Link to this heading"></a></h1>
<p>Bots are a special child typeclasses of
Account that are controlled by the server.</p>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.bots.BotStarter">
<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.accounts.bots.</span></span><span class="sig-name descname"><span class="pre">BotStarter</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/accounts/bots.html#BotStarter"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.BotStarter" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.scripts.scripts.html#evennia.scripts.scripts.DefaultScript" title="evennia.scripts.scripts.DefaultScript"><code class="xref py py-class docutils literal notranslate"><span class="pre">DefaultScript</span></code></a></p>
<p>This non-repeating script has the
sole purpose of kicking its bot
into gear when it is initialized.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.BotStarter.at_script_creation">
<span class="sig-name descname"><span class="pre">at_script_creation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#BotStarter.at_script_creation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.BotStarter.at_script_creation" title="Link to this definition"></a></dt>
<dd><p>Called once, when script is created.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.BotStarter.at_server_start">
<span class="sig-name descname"><span class="pre">at_server_start</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#BotStarter.at_server_start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.BotStarter.at_server_start" title="Link to this definition"></a></dt>
<dd><p>This hook is called after the server has started. It can be used to add
post-startup setup for Scripts without a timer component (for which at_start
could be used).</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.BotStarter.at_start">
<span class="sig-name descname"><span class="pre">at_start</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#BotStarter.at_start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.BotStarter.at_start" title="Link to this definition"></a></dt>
<dd><p>Kick bot into gear.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.BotStarter.at_repeat">
<span class="sig-name descname"><span class="pre">at_repeat</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#BotStarter.at_repeat"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.BotStarter.at_repeat" title="Link to this definition"></a></dt>
<dd><p>Called self.interval seconds to keep connection. We cannot use
the IDLE command from inside the game since the system will
not catch it (commands executed from the server side usually
has no sessions). So we update the idle counter manually here
instead. This keeps the bot getting hit by IDLE_TIMEOUT.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.accounts.bots.BotStarter.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.accounts.bots.BotStarter.DoesNotExist" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.scripts.scripts.html#evennia.scripts.scripts.DefaultScript.DoesNotExist" title="evennia.scripts.scripts.DefaultScript.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.accounts.bots.BotStarter.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.accounts.bots.BotStarter.MultipleObjectsReturned" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.scripts.scripts.html#evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned" title="evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.BotStarter.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.accounts.bots.BotStarter'</span></em><a class="headerlink" href="#evennia.accounts.bots.BotStarter.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.BotStarter.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">'BotStarter'</span></em><a class="headerlink" href="#evennia.accounts.bots.BotStarter.typename" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.bots.Bot">
<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.accounts.bots.</span></span><span class="sig-name descname"><span class="pre">Bot</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/accounts/bots.html#Bot"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.Bot" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount" title="evennia.accounts.accounts.DefaultAccount"><code class="xref py py-class docutils literal notranslate"><span class="pre">DefaultAccount</span></code></a></p>
<p>A Bot will start itself when the server starts (it will generally
not do so on a reload - that will be handled by the normal Portal
session resync)</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.Bot.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/accounts/bots.html#Bot.basetype_setup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.Bot.basetype_setup" title="Link to this definition"></a></dt>
<dd><p>This sets up the basic properties for the bot.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.Bot.start">
<span class="sig-name descname"><span class="pre">start</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">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#Bot.start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.Bot.start" title="Link to this definition"></a></dt>
<dd><p>This starts the bot, whatever that may mean.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.Bot.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">text</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">from_obj</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">session</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">options</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/accounts/bots.html#Bot.msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.Bot.msg" title="Link to this definition"></a></dt>
<dd><p>Evennia -&gt; outgoing protocol</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.Bot.execute_cmd">
<span class="sig-name descname"><span class="pre">execute_cmd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_string</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">session</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#Bot.execute_cmd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.Bot.execute_cmd" title="Link to this definition"></a></dt>
<dd><p>Incoming protocol -&gt; Evennia</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.Bot.at_server_shutdown">
<span class="sig-name descname"><span class="pre">at_server_shutdown</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#Bot.at_server_shutdown"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.Bot.at_server_shutdown" title="Link to this definition"></a></dt>
<dd><p>We need to handle this case manually since the shutdown may be
a reset.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.accounts.bots.Bot.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.accounts.bots.Bot.DoesNotExist" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount.DoesNotExist" title="evennia.accounts.accounts.DefaultAccount.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.accounts.bots.Bot.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.accounts.bots.Bot.MultipleObjectsReturned" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.accounts.accounts.html#evennia.accounts.accounts.DefaultAccount.MultipleObjectsReturned" title="evennia.accounts.accounts.DefaultAccount.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.Bot.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.accounts.bots.Bot'</span></em><a class="headerlink" href="#evennia.accounts.bots.Bot.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.Bot.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">'Bot'</span></em><a class="headerlink" href="#evennia.accounts.bots.Bot.typename" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot">
<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.accounts.bots.</span></span><span class="sig-name descname"><span class="pre">IRCBot</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/accounts/bots.html#IRCBot"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.IRCBot" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot" title="evennia.accounts.bots.Bot"><code class="xref py py-class docutils literal notranslate"><span class="pre">Bot</span></code></a></p>
<p>Bot for handling IRC connections.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.factory_path">
<span class="sig-name descname"><span class="pre">factory_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.server.portal.irc.IRCBotFactory'</span></em><a class="headerlink" href="#evennia.accounts.bots.IRCBot.factory_path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.start">
<span class="sig-name descname"><span class="pre">start</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ev_channel</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">irc_botname</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">irc_channel</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">irc_network</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">irc_port</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">irc_ssl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#IRCBot.start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.IRCBot.start" title="Link to this definition"></a></dt>
<dd><p>Start by telling the portal to start a new session.</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>ev_channel</strong> (<em>str</em>) Key of the Evennia channel to connect to.</p></li>
<li><p><strong>irc_botname</strong> (<em>str</em>) Name of bot to connect to irc channel. If
not set, use <strong>self.key</strong>.</p></li>
<li><p><strong>irc_channel</strong> (<em>str</em>) Name of channel on the form <strong>#channelname</strong>.</p></li>
<li><p><strong>irc_network</strong> (<em>str</em>) URL of the IRC network, like <strong>irc.freenode.net</strong>.</p></li>
<li><p><strong>irc_port</strong> (<em>str</em>) Port number of the irc network, like <strong>6667</strong>.</p></li>
<li><p><strong>irc_ssl</strong> (<em>bool</em>) Indicates whether to use SSL connection.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.at_msg_send">
<span class="sig-name descname"><span class="pre">at_msg_send</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">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#IRCBot.at_msg_send"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.IRCBot.at_msg_send" title="Link to this definition"></a></dt>
<dd><p>Shortcut here or we can end up in infinite loop</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.get_nicklist">
<span class="sig-name descname"><span class="pre">get_nicklist</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#IRCBot.get_nicklist"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.IRCBot.get_nicklist" title="Link to this definition"></a></dt>
<dd><p>Retrive the nick list from the connected channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>caller</strong> (<em>Object</em><em> or </em><em>Account</em>) The requester of the list. This will
be stored and echoed to when the irc network replies with the
requested info.</p>
</dd>
</dl>
<dl class="simple">
<dt>Notes: Since the return is asynchronous, the caller is stored internally</dt><dd><p>in a list; all callers in this list will get the nick info once it
returns (it is a custom OOB inputfunc option). The callback will not
survive a reload (which should be fine, its very quick).</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.ping">
<span class="sig-name descname"><span class="pre">ping</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#IRCBot.ping"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.IRCBot.ping" title="Link to this definition"></a></dt>
<dd><p>Fire a ping to the IRC server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>caller</strong> (<em>Object</em><em> or </em><em>Account</em>) The requester of the ping.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.reconnect">
<span class="sig-name descname"><span class="pre">reconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#IRCBot.reconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.IRCBot.reconnect" title="Link to this definition"></a></dt>
<dd><p>Force a protocol-side reconnect of the client without
having to destroy/recreate the bot “account”.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.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">text</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/accounts/bots.html#IRCBot.msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.IRCBot.msg" title="Link to this definition"></a></dt>
<dd><p>Takes text from connected channel (only).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>text</strong> (<em>str</em><em>, </em><em>optional</em>) Incoming text from channel.</p>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>options</strong> (<em>dict</em>) Options dict with the following allowed keys:
- from_channel (str): dbid of a channel this text originated from.
- from_obj (list): list of objects sending this text.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.execute_cmd">
<span class="sig-name descname"><span class="pre">execute_cmd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</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">txt</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/accounts/bots.html#IRCBot.execute_cmd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.IRCBot.execute_cmd" title="Link to this definition"></a></dt>
<dd><p>Take incoming data and send it to connected channel. This is
triggered by the bot_data_in Inputfunc.</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>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em>, </em><em>optional</em>) Session responsible for this
command. Note that this is the bot.</p></li>
<li><p><strong>txt</strong> (<em>str</em><em>, </em><em>optional</em>) Command string.</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>user</strong> (<em>str</em>) The name of the user who sent the message.</p></li>
<li><p><strong>channel</strong> (<em>str</em>) The name of channel the message was sent to.</p></li>
<li><p><strong>type</strong> (<em>str</em>) Nature of message. Either msg, action, nicklist
or ping.</p></li>
<li><p><strong>nicklist</strong> (<em>list</em><em>, </em><em>optional</em>) Set if <strong>type=nicklist</strong>. This is a list
of nicks returned by calling the <strong>self.get_nicklist</strong>. It must look
for a list <strong>self._nicklist_callers</strong> which will contain all callers
waiting for the nicklist.</p></li>
<li><p><strong>timings</strong> (<em>float</em><em>, </em><em>optional</em>) Set if <strong>type=ping</strong>. This is the return
(in seconds) of a ping request triggered with <strong>self.ping</strong>. The
return must look for a list <strong>self._ping_callers</strong> which will contain
all callers waiting for the ping return.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.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.accounts.bots.IRCBot.DoesNotExist" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot.DoesNotExist" title="evennia.accounts.bots.Bot.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.accounts.bots.IRCBot.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.accounts.bots.IRCBot.MultipleObjectsReturned" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot.MultipleObjectsReturned" title="evennia.accounts.bots.Bot.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.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.accounts.bots.IRCBot'</span></em><a class="headerlink" href="#evennia.accounts.bots.IRCBot.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.IRCBot.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">'IRCBot'</span></em><a class="headerlink" href="#evennia.accounts.bots.IRCBot.typename" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.bots.RSSBot">
<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.accounts.bots.</span></span><span class="sig-name descname"><span class="pre">RSSBot</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/accounts/bots.html#RSSBot"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.RSSBot" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot" title="evennia.accounts.bots.Bot"><code class="xref py py-class docutils literal notranslate"><span class="pre">Bot</span></code></a></p>
<p>An RSS relayer. The RSS protocol itself runs a ticker to update
its feed at regular intervals.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.RSSBot.start">
<span class="sig-name descname"><span class="pre">start</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ev_channel</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">rss_url</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">rss_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#RSSBot.start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.RSSBot.start" title="Link to this definition"></a></dt>
<dd><p>Start by telling the portal to start a new RSS session</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>ev_channel</strong> (<em>str</em>) Key of the Evennia channel to connect to.</p></li>
<li><p><strong>rss_url</strong> (<em>str</em>) Full URL to the RSS feed to subscribe to.</p></li>
<li><p><strong>rss_rate</strong> (<em>int</em>) How often for the feedreader to update.</p></li>
</ul>
</dd>
<dt class="field-even">Raises<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>RuntimeError</strong> If <strong>ev_channel</strong> does not exist.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.RSSBot.execute_cmd">
<span class="sig-name descname"><span class="pre">execute_cmd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">txt</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">session</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/accounts/bots.html#RSSBot.execute_cmd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.RSSBot.execute_cmd" title="Link to this definition"></a></dt>
<dd><p>Take incoming data and send it to connected channel. This is
triggered by the bot_data_in Inputfunc.</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>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em>, </em><em>optional</em>) Session responsible for this
command.</p></li>
<li><p><strong>txt</strong> (<em>str</em><em>, </em><em>optional</em>) Command string.</p></li>
<li><p><strong>kwargs</strong> (<em>dict</em><em>, </em><em>optional</em>) Additional Information passed from bot.
Not used by the RSSbot by default.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.accounts.bots.RSSBot.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.accounts.bots.RSSBot.DoesNotExist" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot.DoesNotExist" title="evennia.accounts.bots.Bot.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.accounts.bots.RSSBot.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.accounts.bots.RSSBot.MultipleObjectsReturned" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot.MultipleObjectsReturned" title="evennia.accounts.bots.Bot.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.RSSBot.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.accounts.bots.RSSBot'</span></em><a class="headerlink" href="#evennia.accounts.bots.RSSBot.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.RSSBot.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">'RSSBot'</span></em><a class="headerlink" href="#evennia.accounts.bots.RSSBot.typename" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.bots.GrapevineBot">
<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.accounts.bots.</span></span><span class="sig-name descname"><span class="pre">GrapevineBot</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/accounts/bots.html#GrapevineBot"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.GrapevineBot" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot" title="evennia.accounts.bots.Bot"><code class="xref py py-class docutils literal notranslate"><span class="pre">Bot</span></code></a></p>
<p>g Grapevine (<a class="reference external" href="https://grapevine.haus">https://grapevine.haus</a>) relayer. The channel to connect to is the first
name in the settings.GRAPEVINE_CHANNELS list.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.GrapevineBot.factory_path">
<span class="sig-name descname"><span class="pre">factory_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.server.portal.grapevine.RestartingWebsocketServerFactory'</span></em><a class="headerlink" href="#evennia.accounts.bots.GrapevineBot.factory_path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.GrapevineBot.start">
<span class="sig-name descname"><span class="pre">start</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ev_channel</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">grapevine_channel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#GrapevineBot.start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.GrapevineBot.start" title="Link to this definition"></a></dt>
<dd><p>Start by telling the portal to connect to the grapevine network.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.GrapevineBot.at_msg_send">
<span class="sig-name descname"><span class="pre">at_msg_send</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">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#GrapevineBot.at_msg_send"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.GrapevineBot.at_msg_send" title="Link to this definition"></a></dt>
<dd><p>Shortcut here or we can end up in infinite loop</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.GrapevineBot.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">text</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/accounts/bots.html#GrapevineBot.msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.GrapevineBot.msg" title="Link to this definition"></a></dt>
<dd><p>Takes text from connected channel (only).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>text</strong> (<em>str</em><em>, </em><em>optional</em>) Incoming text from channel.</p>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>options</strong> (<em>dict</em>) Options dict with the following allowed keys:
- from_channel (str): dbid of a channel this text originated from.
- from_obj (list): list of objects sending this text.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.GrapevineBot.execute_cmd">
<span class="sig-name descname"><span class="pre">execute_cmd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">txt</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">session</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">event</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">grapevine_channel</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">sender</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">game</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/accounts/bots.html#GrapevineBot.execute_cmd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.GrapevineBot.execute_cmd" title="Link to this definition"></a></dt>
<dd><p>Take incoming data from protocol and send it to connected channel. This is
triggered by the bot_data_in Inputfunc.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.accounts.bots.GrapevineBot.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.accounts.bots.GrapevineBot.DoesNotExist" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot.DoesNotExist" title="evennia.accounts.bots.Bot.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.accounts.bots.GrapevineBot.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.accounts.bots.GrapevineBot.MultipleObjectsReturned" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot.MultipleObjectsReturned" title="evennia.accounts.bots.Bot.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.GrapevineBot.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.accounts.bots.GrapevineBot'</span></em><a class="headerlink" href="#evennia.accounts.bots.GrapevineBot.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.GrapevineBot.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">'GrapevineBot'</span></em><a class="headerlink" href="#evennia.accounts.bots.GrapevineBot.typename" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot">
<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.accounts.bots.</span></span><span class="sig-name descname"><span class="pre">DiscordBot</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/accounts/bots.html#DiscordBot"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.DiscordBot" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot" title="evennia.accounts.bots.Bot"><code class="xref py py-class docutils literal notranslate"><span class="pre">Bot</span></code></a></p>
<p>Discord bot relay. You will need to set up your own bot
(<a class="reference external" href="https://discord.com/developers/applications">https://discord.com/developers/applications</a>) and add the bot token as <strong>DISCORD_BOT_TOKEN</strong> to
<strong>secret_settings.py</strong> to use</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.factory_path">
<span class="sig-name descname"><span class="pre">factory_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.server.portal.discord.DiscordWebsocketServerFactory'</span></em><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.factory_path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.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/accounts/bots.html#DiscordBot.at_init"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.at_init" title="Link to this definition"></a></dt>
<dd><p>Load required channels back into memory</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.start">
<span class="sig-name descname"><span class="pre">start</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/bots.html#DiscordBot.start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.start" title="Link to this definition"></a></dt>
<dd><p>Tell the Discord protocol to connect.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.at_pre_channel_msg">
<span class="sig-name descname"><span class="pre">at_pre_channel_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">channel</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="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/accounts/bots.html#DiscordBot.at_pre_channel_msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.at_pre_channel_msg" title="Link to this definition"></a></dt>
<dd><p>Called by the Channel just before passing a message into <strong>channel_msg</strong>.</p>
<p>We overload this to set the channel tag prefix.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.channel_msg">
<span class="sig-name descname"><span class="pre">channel_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">channel</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">relayed</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/accounts/bots.html#DiscordBot.channel_msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.channel_msg" title="Link to this definition"></a></dt>
<dd><p>Passes channel messages received on to discord</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>)</p></li>
<li><p><strong>channel</strong> (<em>Channel</em>)</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>senders</strong> (<em>list</em><em> or </em><em>None</em><em>) </em><em>- Object</em><em>(</em><em>s</em>)</p></li>
<li><p><strong>relayed</strong> (<em>bool</em>)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.change_nickname">
<span class="sig-name descname"><span class="pre">change_nickname</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">new_nickname</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">guild_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">user_id</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/accounts/bots.html#DiscordBot.change_nickname"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.change_nickname" title="Link to this definition"></a></dt>
<dd><p>Changes a given users nickname on the given guild the bot is in.</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>new_nickname</strong> (<em>str</em>)</p></li>
<li><p><strong>guild_id</strong> (<em>int</em>)</p></li>
<li><p><strong>user_id</strong> (<em>int</em>)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.assign_role">
<span class="sig-name descname"><span class="pre">assign_role</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">role_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">guild_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">user_id</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/accounts/bots.html#DiscordBot.assign_role"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.assign_role" title="Link to this definition"></a></dt>
<dd><p>Assigns a user the role on the given guild the bot is in.</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>role_id</strong> (<em>int</em>)</p></li>
<li><p><strong>guild_id</strong> (<em>int</em>)</p></li>
<li><p><strong>user_id</strong> (<em>int</em>)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.direct_msg">
<span class="sig-name descname"><span class="pre">direct_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">sender</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/accounts/bots.html#DiscordBot.direct_msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.direct_msg" title="Link to this definition"></a></dt>
<dd><p>Called when the Discord bot receives a direct message on Discord.</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>)</p></li>
<li><p><strong>sender</strong> (<em>tuple</em><em>) </em><em>- The Discord info for the sender in the form</em><em> (</em><em>id</em><em>, </em><em>nickname</em>)</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>**kwargs</strong> (<em>optional</em>)</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.relay_to_channel">
<span class="sig-name descname"><span class="pre">relay_to_channel</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">to_channel</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sender</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">from_channel</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">from_server</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/accounts/bots.html#DiscordBot.relay_to_channel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.relay_to_channel" title="Link to this definition"></a></dt>
<dd><p>Formats and sends a Discord -&gt; Evennia message. Called when the Discord bot receives a
channel message on Discord.</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>)</p></li>
<li><p><strong>to_channel</strong> (<em>Channel</em>)</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>sender</strong> (tuple) - The Discord info for the sender in the form <a href="#id1"><span class="problematic" id="id2">**</span></a>(id, nickname)</p></li>
<li><p><strong>from_channel</strong> (<em>str</em>)</p></li>
<li><p><strong>from_server</strong> (<em>str</em>)</p></li>
<li><p><strong>additional</strong> (<em>kwargs - Any additional keywords. Unused by default</em><em>, </em><em>but available for adding</em>) flags or parameters.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.execute_cmd">
<span class="sig-name descname"><span class="pre">execute_cmd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">txt</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">session</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">type</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">sender</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/accounts/bots.html#DiscordBot.execute_cmd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.execute_cmd" title="Link to this definition"></a></dt>
<dd><p>Take incoming data from protocol and send it to connected channel. This is
triggered by the bot_data_in Inputfunc.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>txt</strong> (<em>str</em>)</p></li>
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>)</p></li>
<li><p><strong>type</strong> (<em>str</em><em>, </em><em>optional</em>) the protocol pre-processed it.</p></li>
<li><p><strong>sender</strong> (<em>tuple</em>) strings, in the form of (id, nickname)</p></li>
<li><p><strong>for</strong> (<em>kwargs - Any additional data specific to a particular type</em><em> of </em><em>actions. The data</em>) any Discord actions not pre-processed by the protocol will also be passed via kwargs.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.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.accounts.bots.DiscordBot.DoesNotExist" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot.DoesNotExist" title="evennia.accounts.bots.Bot.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.accounts.bots.DiscordBot.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.accounts.bots.DiscordBot.MultipleObjectsReturned" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.accounts.bots.Bot.MultipleObjectsReturned" title="evennia.accounts.bots.Bot.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.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.accounts.bots.DiscordBot'</span></em><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.bots.DiscordBot.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">'DiscordBot'</span></em><a class="headerlink" href="#evennia.accounts.bots.DiscordBot.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.accounts.bots</a><ul>
<li><a class="reference internal" href="#evennia.accounts.bots.BotStarter"><code class="docutils literal notranslate"><span class="pre">BotStarter</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.bots.BotStarter.at_script_creation"><code class="docutils literal notranslate"><span class="pre">BotStarter.at_script_creation()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.BotStarter.at_server_start"><code class="docutils literal notranslate"><span class="pre">BotStarter.at_server_start()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.BotStarter.at_start"><code class="docutils literal notranslate"><span class="pre">BotStarter.at_start()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.BotStarter.at_repeat"><code class="docutils literal notranslate"><span class="pre">BotStarter.at_repeat()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.BotStarter.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">BotStarter.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.BotStarter.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">BotStarter.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.BotStarter.path"><code class="docutils literal notranslate"><span class="pre">BotStarter.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.BotStarter.typename"><code class="docutils literal notranslate"><span class="pre">BotStarter.typename</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.bots.Bot"><code class="docutils literal notranslate"><span class="pre">Bot</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.bots.Bot.basetype_setup"><code class="docutils literal notranslate"><span class="pre">Bot.basetype_setup()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.Bot.start"><code class="docutils literal notranslate"><span class="pre">Bot.start()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.Bot.msg"><code class="docutils literal notranslate"><span class="pre">Bot.msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.Bot.execute_cmd"><code class="docutils literal notranslate"><span class="pre">Bot.execute_cmd()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.Bot.at_server_shutdown"><code class="docutils literal notranslate"><span class="pre">Bot.at_server_shutdown()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.Bot.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">Bot.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.Bot.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">Bot.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.Bot.path"><code class="docutils literal notranslate"><span class="pre">Bot.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.Bot.typename"><code class="docutils literal notranslate"><span class="pre">Bot.typename</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot"><code class="docutils literal notranslate"><span class="pre">IRCBot</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.factory_path"><code class="docutils literal notranslate"><span class="pre">IRCBot.factory_path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.start"><code class="docutils literal notranslate"><span class="pre">IRCBot.start()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.at_msg_send"><code class="docutils literal notranslate"><span class="pre">IRCBot.at_msg_send()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.get_nicklist"><code class="docutils literal notranslate"><span class="pre">IRCBot.get_nicklist()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.ping"><code class="docutils literal notranslate"><span class="pre">IRCBot.ping()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.reconnect"><code class="docutils literal notranslate"><span class="pre">IRCBot.reconnect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.msg"><code class="docutils literal notranslate"><span class="pre">IRCBot.msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.execute_cmd"><code class="docutils literal notranslate"><span class="pre">IRCBot.execute_cmd()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">IRCBot.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">IRCBot.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.path"><code class="docutils literal notranslate"><span class="pre">IRCBot.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.IRCBot.typename"><code class="docutils literal notranslate"><span class="pre">IRCBot.typename</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.bots.RSSBot"><code class="docutils literal notranslate"><span class="pre">RSSBot</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.bots.RSSBot.start"><code class="docutils literal notranslate"><span class="pre">RSSBot.start()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.RSSBot.execute_cmd"><code class="docutils literal notranslate"><span class="pre">RSSBot.execute_cmd()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.RSSBot.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">RSSBot.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.RSSBot.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">RSSBot.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.RSSBot.path"><code class="docutils literal notranslate"><span class="pre">RSSBot.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.RSSBot.typename"><code class="docutils literal notranslate"><span class="pre">RSSBot.typename</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.bots.GrapevineBot"><code class="docutils literal notranslate"><span class="pre">GrapevineBot</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.bots.GrapevineBot.factory_path"><code class="docutils literal notranslate"><span class="pre">GrapevineBot.factory_path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.GrapevineBot.start"><code class="docutils literal notranslate"><span class="pre">GrapevineBot.start()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.GrapevineBot.at_msg_send"><code class="docutils literal notranslate"><span class="pre">GrapevineBot.at_msg_send()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.GrapevineBot.msg"><code class="docutils literal notranslate"><span class="pre">GrapevineBot.msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.GrapevineBot.execute_cmd"><code class="docutils literal notranslate"><span class="pre">GrapevineBot.execute_cmd()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.GrapevineBot.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">GrapevineBot.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.GrapevineBot.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">GrapevineBot.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.GrapevineBot.path"><code class="docutils literal notranslate"><span class="pre">GrapevineBot.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.GrapevineBot.typename"><code class="docutils literal notranslate"><span class="pre">GrapevineBot.typename</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot"><code class="docutils literal notranslate"><span class="pre">DiscordBot</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.factory_path"><code class="docutils literal notranslate"><span class="pre">DiscordBot.factory_path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.at_init"><code class="docutils literal notranslate"><span class="pre">DiscordBot.at_init()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.start"><code class="docutils literal notranslate"><span class="pre">DiscordBot.start()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.at_pre_channel_msg"><code class="docutils literal notranslate"><span class="pre">DiscordBot.at_pre_channel_msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.channel_msg"><code class="docutils literal notranslate"><span class="pre">DiscordBot.channel_msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.change_nickname"><code class="docutils literal notranslate"><span class="pre">DiscordBot.change_nickname()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.assign_role"><code class="docutils literal notranslate"><span class="pre">DiscordBot.assign_role()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.direct_msg"><code class="docutils literal notranslate"><span class="pre">DiscordBot.direct_msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.relay_to_channel"><code class="docutils literal notranslate"><span class="pre">DiscordBot.relay_to_channel()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.execute_cmd"><code class="docutils literal notranslate"><span class="pre">DiscordBot.execute_cmd()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">DiscordBot.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">DiscordBot.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.path"><code class="docutils literal notranslate"><span class="pre">DiscordBot.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.bots.DiscordBot.typename"><code class="docutils literal notranslate"><span class="pre">DiscordBot.typename</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.accounts.accounts.html"
title="previous chapter">evennia.accounts.accounts</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.accounts.manager.html"
title="next chapter">evennia.accounts.manager</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.accounts.bots.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.accounts.manager.html" title="evennia.accounts.manager"
>next</a> |</li>
<li class="right" >
<a href="evennia.accounts.accounts.html" title="evennia.accounts.accounts"
>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.accounts.html" >evennia.accounts</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.bots</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>