evennia/docs/2.x/api/evennia.server.portal.discord.html
Evennia docbuilder action e535f5782a Updated HTML docs.
2023-10-19 20:22:27 +00:00

469 lines
No EOL
36 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>evennia.server.portal.discord &#8212; Evennia 2.x documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.server.portal.grapevine" href="evennia.server.portal.grapevine.html" />
<link rel="prev" title="evennia.server.portal.amp_server" href="evennia.server.portal.amp_server.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.server.portal.grapevine.html" title="evennia.server.portal.grapevine"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.server.portal.amp_server.html" title="evennia.server.portal.amp_server"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.server.html" >evennia.server</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.server.portal.html" accesskey="U">evennia.server.portal</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.portal.discord</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.server.portal.amp_server.html"
title="previous chapter">evennia.server.portal.amp_server</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.server.portal.grapevine.html"
title="next chapter">evennia.server.portal.grapevine</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.server.portal.discord.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="evennia.server.portal.discord.html">2.x (main branch)</a></li>
<ul>
<li><a href="../1.3.0/index.html">1.3.0 (v1.3.0 branch)</a></li>
<li><a href="../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.server.portal.discord">
<span id="evennia-server-portal-discord"></span><h1>evennia.server.portal.discord<a class="headerlink" href="#module-evennia.server.portal.discord" title="Permalink to this headline"></a></h1>
<p>Implements Discord chat channel integration.</p>
<p>The Discord API uses a mix of websockets and REST API endpoints.</p>
<p>In order for this integration to work, you need to have your own
discord bot set up via <a class="reference external" href="https://discord.com/developers/applications">https://discord.com/developers/applications</a>
with the MESSAGE CONTENT toggle switched on, and your bot token
added to <strong>server/conf/secret_settings.py</strong> as your DISCORD_BOT_TOKEN</p>
<dl class="py function">
<dt id="evennia.server.portal.discord.random">
<code class="sig-prename descclassname">evennia.server.portal.discord.</code><code class="sig-name descname">random</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; x in the interval [0, 1).<a class="headerlink" href="#evennia.server.portal.discord.random" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py class">
<dt id="evennia.server.portal.discord.QuietConnectionPool">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.portal.discord.</code><code class="sig-name descname">QuietConnectionPool</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">reactor</span></em>, <em class="sig-param"><span class="n">persistent</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#QuietConnectionPool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.QuietConnectionPool" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">twisted.web.client.HTTPConnectionPool</span></code></p>
<p>A quiet version of the HTTPConnectionPool which sets the factorys
<strong>noisy</strong> property to False to muffle log output.</p>
<dl class="py method">
<dt id="evennia.server.portal.discord.QuietConnectionPool.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">reactor</span></em>, <em class="sig-param"><span class="n">persistent</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#QuietConnectionPool.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.QuietConnectionPool.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.portal.discord.should_retry">
<code class="sig-prename descclassname">evennia.server.portal.discord.</code><code class="sig-name descname">should_retry</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">status_code</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#should_retry"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.should_retry" title="Permalink to this definition"></a></dt>
<dd><p>Helper function to check if the request should be retried later.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>status_code</strong> (<em>int</em>) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>retry (bool) - True if request should be retried False otherwise</p>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.portal.discord.</code><code class="sig-name descname">DiscordWebsocketServerFactory</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sessionhandler</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordWebsocketServerFactory"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">autobahn.twisted.websocket.WebSocketClientFactory</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">twisted.internet.protocol.ReconnectingClientFactory</span></code></p>
<p>A customized websocket client factory that navigates the Discord gateway process.</p>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.initialDelay">
<code class="sig-name descname">initialDelay</code><em class="property"> = 1</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.initialDelay" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.factor">
<code class="sig-name descname">factor</code><em class="property"> = 1.5</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.factor" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.maxDelay">
<code class="sig-name descname">maxDelay</code><em class="property"> = 60</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.maxDelay" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.noisy">
<code class="sig-name descname">noisy</code><em class="property"> = False</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.noisy" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.gateway">
<code class="sig-name descname">gateway</code><em class="property"> = None</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.gateway" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.resume_url">
<code class="sig-name descname">resume_url</code><em class="property"> = None</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.resume_url" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.is_connecting">
<code class="sig-name descname">is_connecting</code><em class="property"> = False</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.is_connecting" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sessionhandler</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordWebsocketServerFactory.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.__init__" title="Permalink to this definition"></a></dt>
<dd><p>In addition to all arguments to the constructor of
:func:<strong>autobahn.websocket.interfaces.IWebSocketClientChannelFactory</strong>,
you can supply a <strong>**reactor**</strong> keyword argument to specify the
Twisted reactor to be used.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.get_gateway_url">
<code class="sig-name descname">get_gateway_url</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordWebsocketServerFactory.get_gateway_url"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.get_gateway_url" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.websocket_init">
<code class="sig-name descname">websocket_init</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">payload</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordWebsocketServerFactory.websocket_init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.websocket_init" title="Permalink to this definition"></a></dt>
<dd><p>callback for when the URL is gotten</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.buildProtocol">
<code class="sig-name descname">buildProtocol</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">addr</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordWebsocketServerFactory.buildProtocol"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.buildProtocol" title="Permalink to this definition"></a></dt>
<dd><p>Build new instance of protocol</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>addr</strong> (<em>str</em>) Not used, using factory/settings data</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.startedConnecting">
<code class="sig-name descname">startedConnecting</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">connector</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordWebsocketServerFactory.startedConnecting"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.startedConnecting" title="Permalink to this definition"></a></dt>
<dd><p>Tracks reconnections for debugging.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>connector</strong> (<em>Connector</em>) Represents the connection.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.reconnect">
<code class="sig-name descname">reconnect</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordWebsocketServerFactory.reconnect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.reconnect" title="Permalink to this definition"></a></dt>
<dd><p>Force a reconnection of the bot protocol. This requires
de-registering the session and then reattaching a new one.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordWebsocketServerFactory.start">
<code class="sig-name descname">start</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordWebsocketServerFactory.start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordWebsocketServerFactory.start" title="Permalink to this definition"></a></dt>
<dd><p>Connect protocol to remote server</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.server.portal.discord.DiscordClient">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.portal.discord.</code><code class="sig-name descname">DiscordClient</code><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">autobahn.twisted.websocket.WebSocketClientProtocol</span></code>, <a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.server.session.Session</span></code></a></p>
<p>Implements the Discord client</p>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordClient.nextHeartbeatCall">
<code class="sig-name descname">nextHeartbeatCall</code><em class="property"> = None</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.nextHeartbeatCall" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordClient.pending_heartbeat">
<code class="sig-name descname">pending_heartbeat</code><em class="property"> = False</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.pending_heartbeat" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordClient.heartbeat_interval">
<code class="sig-name descname">heartbeat_interval</code><em class="property"> = None</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.heartbeat_interval" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordClient.last_sequence">
<code class="sig-name descname">last_sequence</code><em class="property"> = 0</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.last_sequence" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordClient.session_id">
<code class="sig-name descname">session_id</code><em class="property"> = None</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.session_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.portal.discord.DiscordClient.discord_id">
<code class="sig-name descname">discord_id</code><em class="property"> = None</em><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.discord_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.at_login">
<code class="sig-name descname">at_login</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.at_login"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.at_login" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.onOpen">
<code class="sig-name descname">onOpen</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.onOpen"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.onOpen" title="Permalink to this definition"></a></dt>
<dd><p>Called when connection is established.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.onMessage">
<code class="sig-name descname">onMessage</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">payload</span></em>, <em class="sig-param"><span class="n">isBinary</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.onMessage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.onMessage" title="Permalink to this definition"></a></dt>
<dd><p>Callback fired when a complete WebSocket message was received.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>payload</strong> (<em>bytes</em>) The WebSocket message received.</p></li>
<li><p><strong>isBinary</strong> (<em>bool</em>) Flag indicating whether payload is binary or
UTF-8 encoded text.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.onClose">
<code class="sig-name descname">onClose</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">wasClean</span></em>, <em class="sig-param"><span class="n">code</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">reason</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.onClose"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.onClose" title="Permalink to this definition"></a></dt>
<dd><p>This is executed when the connection is lost for whatever
reason. it can also be called directly, from the disconnect
method.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>wasClean</strong> (<em>bool</em>) <strong>**True**</strong> if the WebSocket was closed cleanly.</p></li>
<li><p><strong>code</strong> (<em>int</em><em> or </em><em>None</em>) Close status as sent by the WebSocket peer.</p></li>
<li><p><strong>reason</strong> (<em>str</em><em> or </em><em>None</em>) Close reason as sent by the WebSocket peer.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.post_response">
<code class="sig-name descname">post_response</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">body</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.post_response"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.post_response" title="Permalink to this definition"></a></dt>
<dd><p>Process the response from sending a POST request</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>body</strong> (<em>bytes</em>) </p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.handle_error">
<code class="sig-name descname">handle_error</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.handle_error"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.handle_error" title="Permalink to this definition"></a></dt>
<dd><p>General hook for processing errors.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>data</strong> (<em>dict</em>) </p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.resume">
<code class="sig-name descname">resume</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.resume"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.resume" title="Permalink to this definition"></a></dt>
<dd><p>Called after a reconnection to re-identify and replay missed events</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.disconnect">
<code class="sig-name descname">disconnect</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">reason</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.disconnect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.disconnect" title="Permalink to this definition"></a></dt>
<dd><p>Generic hook for the engine to call in order to
disconnect this protocol.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>reason</strong> (<em>str</em><em> or </em><em>None</em>) Motivation for the disconnection.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.identify">
<code class="sig-name descname">identify</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.identify"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.identify" title="Permalink to this definition"></a></dt>
<dd><p>Send Discord authentication. This should be sent once heartbeats begin.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.connection_ready">
<code class="sig-name descname">connection_ready</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.connection_ready"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.connection_ready" title="Permalink to this definition"></a></dt>
<dd><p>Process READY data for relevant bot info.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.doHeartbeat">
<code class="sig-name descname">doHeartbeat</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.doHeartbeat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.doHeartbeat" title="Permalink to this definition"></a></dt>
<dd><p>Send heartbeat to Discord.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.send_channel">
<code class="sig-name descname">send_channel</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text</span></em>, <em class="sig-param"><span class="n">channel_id</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.send_channel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.send_channel" title="Permalink to this definition"></a></dt>
<dd><p>Send a message from an Evennia channel to a Discord channel.</p>
<p>Use with session.msg(channel=(message, channel, sender))</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.send_nickname">
<code class="sig-name descname">send_nickname</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text</span></em>, <em class="sig-param"><span class="n">guild_id</span></em>, <em class="sig-param"><span class="n">user_id</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.send_nickname"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.send_nickname" title="Permalink to this definition"></a></dt>
<dd><p>Changes a users nickname on a Discord server.</p>
<p>Use with session.msg(nickname=(new_nickname, guild_id, user_id))</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.send_role">
<code class="sig-name descname">send_role</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">role_id</span></em>, <em class="sig-param"><span class="n">guild_id</span></em>, <em class="sig-param"><span class="n">user_id</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.send_role"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.send_role" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.send_default">
<code class="sig-name descname">send_default</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.send_default"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.send_default" title="Permalink to this definition"></a></dt>
<dd><p>Ignore other outputfuncs</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.discord.DiscordClient.data_in">
<code class="sig-name descname">data_in</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/discord.html#DiscordClient.data_in"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.discord.DiscordClient.data_in" title="Permalink to this definition"></a></dt>
<dd><p>Process incoming data from Discord and sent to the Evennia server</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>data</strong> (<em>dict</em>) Converted json data.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
</div>
</div>
</div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.server.portal.grapevine.html" title="evennia.server.portal.grapevine"
>next</a> |</li>
<li class="right" >
<a href="evennia.server.portal.amp_server.html" title="evennia.server.portal.amp_server"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.server.html" >evennia.server</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.server.portal.html" >evennia.server.portal</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.portal.discord</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2023, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>