evennia/docs/2.x/api/evennia.server.portal.amp_server.html
Evennia docbuilder action 34c10ca46b Updated HTML docs.
2023-11-23 17:55:19 +00:00

376 lines
No EOL
25 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.amp_server &#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.discord" href="evennia.server.portal.discord.html" />
<link rel="prev" title="evennia.server.portal.amp" href="evennia.server.portal.amp.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.discord.html" title="evennia.server.portal.discord"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.server.portal.amp.html" title="evennia.server.portal.amp"
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.amp_server</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.html"
title="previous chapter">evennia.server.portal.amp</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.server.portal.discord.html"
title="next chapter">evennia.server.portal.discord</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.amp_server.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.amp_server.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.amp_server">
<span id="evennia-server-portal-amp-server"></span><h1>evennia.server.portal.amp_server<a class="headerlink" href="#module-evennia.server.portal.amp_server" title="Permalink to this headline"></a></h1>
<p>The Evennia Portal service acts as an AMP-server, handling AMP
communication to the AMP clients connecting to it (by default
these are the Evennia Server and the evennia launcher).</p>
<dl class="py function">
<dt id="evennia.server.portal.amp_server.getenv">
<code class="sig-prename descclassname">evennia.server.portal.amp_server.</code><code class="sig-name descname">getenv</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/amp_server.html#getenv"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.getenv" title="Permalink to this definition"></a></dt>
<dd><p>Get current environment and add PYTHONPATH.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>env (dict)</em> Environment global dict.</p>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.server.portal.amp_server.AMPServerFactory">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.portal.amp_server.</code><code class="sig-name descname">AMPServerFactory</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">portal</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerFactory" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">twisted.internet.protocol.ServerFactory</span></code></p>
<p>This factory creates AMP Server connection. This acts as the Portal-side communication to the
Server process.</p>
<dl class="py attribute">
<dt id="evennia.server.portal.amp_server.AMPServerFactory.noisy">
<code class="sig-name descname">noisy</code><em class="property"> = False</em><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerFactory.noisy" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerFactory.logPrefix">
<code class="sig-name descname">logPrefix</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory.logPrefix"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerFactory.logPrefix" title="Permalink to this definition"></a></dt>
<dd><p>How this is named in logs</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerFactory.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">portal</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerFactory.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize the factory. This is called as the Portal service starts.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>portal</strong> (<em>Portal</em>) The Evennia Portal service instance.</p></li>
<li><p><strong>protocol</strong> (<em>Protocol</em>) The protocol the factory creates
instances of.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerFactory.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/amp_server.html#AMPServerFactory.buildProtocol"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerFactory.buildProtocol" title="Permalink to this definition"></a></dt>
<dd><p>Start a new connection, and store it on the service object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>addr</strong> (<em>str</em>) Connection address. Not used.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>protocol (Protocol)</em> The created protocol.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.portal.amp_server.</code><code class="sig-name descname">AMPServerProtocol</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/amp_server.html#AMPServerProtocol"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.server.portal.amp.html#evennia.server.portal.amp.AMPMultiConnectionProtocol" title="evennia.server.portal.amp.AMPMultiConnectionProtocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.server.portal.amp.AMPMultiConnectionProtocol</span></code></a></p>
<p>Protocol subclass for the AMP-server run by the Portal.</p>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.connectionLost">
<code class="sig-name descname">connectionLost</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">reason</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.connectionLost"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.connectionLost" title="Permalink to this definition"></a></dt>
<dd><p>Set up a simple callback mechanism to let the amp-server wait for a connection to close.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.get_status">
<code class="sig-name descname">get_status</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.get_status"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.get_status" title="Permalink to this definition"></a></dt>
<dd><p>Return status for the Evennia infrastructure.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>status (tuple)</em> </p>
<dl class="simple">
<dt>The portal/server status and pids</dt><dd><p>(portal_live, server_live, portal_PID, server_PID).</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.data_to_server">
<code class="sig-name descname">data_to_server</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">command</span></em>, <em class="sig-param"><span class="n">sessid</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/amp_server.html#AMPServerProtocol.data_to_server"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.data_to_server" title="Permalink to this definition"></a></dt>
<dd><p>Send data across the wire to the Server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>command</strong> (<em>AMP Command</em>) A protocol send command.</p></li>
<li><p><strong>sessid</strong> (<em>int</em>) A unique Session id.</p></li>
<li><p><strong>kwargs</strong> (<em>any</em>) Data to send. This will be pickled.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>deferred (deferred or None)</em> A deferred with an errback.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Data will be sent across the wire pickled as a tuple
(sessid, kwargs).</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.start_server">
<code class="sig-name descname">start_server</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">server_twistd_cmd</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.start_server"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.start_server" title="Permalink to this definition"></a></dt>
<dd><p>(Re-)Launch the Evennia server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>server_twisted_cmd</strong> (<em>list</em>) The server start instruction
to pass to POpen to start the server.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.wait_for_disconnect">
<code class="sig-name descname">wait_for_disconnect</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">callback</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/amp_server.html#AMPServerProtocol.wait_for_disconnect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.wait_for_disconnect" title="Permalink to this definition"></a></dt>
<dd><p>Add a callback for when this connection is lost.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>callback</strong> (<em>callable</em>) Will be called with <a href="#id1"><span class="problematic" id="id2">*</span></a>args, <a href="#id3"><span class="problematic" id="id4">**</span></a>kwargs
once this protocol is disconnected.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.wait_for_server_connect">
<code class="sig-name descname">wait_for_server_connect</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">callback</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/amp_server.html#AMPServerProtocol.wait_for_server_connect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.wait_for_server_connect" title="Permalink to this definition"></a></dt>
<dd><p>Add a callback for when the Server is sure to have connected.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>callback</strong> (<em>callable</em>) Will be called with <a href="#id5"><span class="problematic" id="id6">*</span></a>args, <a href="#id7"><span class="problematic" id="id8">**</span></a>kwargs
once the Server handshake with Portal is complete.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.stop_server">
<code class="sig-name descname">stop_server</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mode</span><span class="o">=</span><span class="default_value">'shutdown'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.stop_server"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.stop_server" title="Permalink to this definition"></a></dt>
<dd><p>Shut down server in one or more modes.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>mode</strong> (<em>str</em>) One of shutdown, reload or reset.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.send_Status2Launcher">
<code class="sig-name descname">send_Status2Launcher</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.send_Status2Launcher"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.send_Status2Launcher" title="Permalink to this definition"></a></dt>
<dd><p>Send a status stanza to the launcher.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.send_MsgPortal2Server">
<code class="sig-name descname">send_MsgPortal2Server</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">session</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/amp_server.html#AMPServerProtocol.send_MsgPortal2Server"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.send_MsgPortal2Server" title="Permalink to this definition"></a></dt>
<dd><p>Access method called by the Portal and executed on the Portal.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>session</strong> (<em>session</em>) Session</p></li>
<li><p><strong>kwargs</strong> (<em>any</em><em>, </em><em>optional</em>) Optional data.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>deferred (Deferred)</em> Asynchronous return.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.send_AdminPortal2Server">
<code class="sig-name descname">send_AdminPortal2Server</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">session</span></em>, <em class="sig-param"><span class="n">operation</span><span class="o">=</span><span class="default_value">''</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/amp_server.html#AMPServerProtocol.send_AdminPortal2Server"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.send_AdminPortal2Server" title="Permalink to this definition"></a></dt>
<dd><p>Send Admin instructions from the Portal to the Server.
Executed on the Portal.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</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>) Session.</p></li>
<li><p><strong>operation</strong> (<em>char</em><em>, </em><em>optional</em>) Identifier for the server operation, as defined by the
global variables in <strong>evennia/server/amp.py</strong>.</p></li>
<li><p><strong>data</strong> (<em>str</em><em> or </em><em>dict</em><em>, </em><em>optional</em>) Data used in the administrative operation.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_status">
<code class="sig-name descname">portal_receive_status</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_status" title="Permalink to this definition"></a></dt>
<dd><p>Helper decorator</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_launcher2portal">
<code class="sig-name descname">portal_receive_launcher2portal</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_launcher2portal" title="Permalink to this definition"></a></dt>
<dd><p>Helper decorator</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_server2portal">
<code class="sig-name descname">portal_receive_server2portal</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_server2portal" title="Permalink to this definition"></a></dt>
<dd><p>Helper decorator</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_adminserver2portal">
<code class="sig-name descname">portal_receive_adminserver2portal</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_adminserver2portal" title="Permalink to this definition"></a></dt>
<dd><p>Helper decorator</p>
</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.discord.html" title="evennia.server.portal.discord"
>next</a> |</li>
<li class="right" >
<a href="evennia.server.portal.amp.html" title="evennia.server.portal.amp"
>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.amp_server</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>