<spanid="evennia-server-portal-amp-server"></span><h1>evennia.server.portal.amp_server<aclass="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>
<dlclass="py function">
<dtid="evennia.server.portal.amp_server.getenv">
<codeclass="sig-prename descclassname">evennia.server.portal.amp_server.</code><codeclass="sig-name descname">getenv</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#getenv"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.getenv"title="Permalink to this definition">¶</a></dt>
<dd><p>Get current environment and add PYTHONPATH.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>env (dict)</em>– Environment global dict.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp_server.</code><codeclass="sig-name descname">AMPServerFactory</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">portal</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerFactory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerFactory.noisy"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">logPrefix</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory.logPrefix"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerFactory.logPrefix"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">portal</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<codeclass="sig-name descname">buildProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">addr</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory.buildProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>addr</strong> (<em>str</em>) – Connection address. Not used.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>protocol (Protocol)</em>– The created protocol.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp_server.</code><codeclass="sig-name descname">AMPServerProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">connectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">reason</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.connectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<codeclass="sig-name descname">get_status</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.get_status"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<codeclass="sig-name descname">data_to_server</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">command</span></em>, <emclass="sig-param"><spanclass="n">sessid</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.data_to_server"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="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>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>deferred (deferred or None)</em>– A deferred with an errback.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>Data will be sent across the wire pickled as a tuple
<codeclass="sig-name descname">start_server</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">server_twistd_cmd</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.start_server"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>server_twisted_cmd</strong> (<em>list</em>) – The server start instruction
<codeclass="sig-name descname">wait_for_disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">callback</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.wait_for_disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>callback</strong> (<em>callable</em>) – Will be called with <ahref="#id1"><spanclass="problematic"id="id2">*</span></a>args, <ahref="#id3"><spanclass="problematic"id="id4">**</span></a>kwargs
<codeclass="sig-name descname">wait_for_server_connect</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">callback</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.wait_for_server_connect"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>callback</strong> (<em>callable</em>) – Will be called with <ahref="#id5"><spanclass="problematic"id="id6">*</span></a>args, <ahref="#id7"><spanclass="problematic"id="id8">**</span></a>kwargs
once the Server handshake with Portal is complete.</p>
<codeclass="sig-name descname">stop_server</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">mode</span><spanclass="o">=</span><spanclass="default_value">'shutdown'</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.stop_server"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>mode</strong> (<em>str</em>) – One of ‘shutdown’, ‘reload’ or ‘reset’.</p>
<codeclass="sig-name descname">send_Status2Launcher</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.send_Status2Launcher"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.send_Status2Launcher"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_MsgPortal2Server</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.send_MsgPortal2Server"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<codeclass="sig-name descname">send_AdminPortal2Server</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em>, <emclass="sig-param"><spanclass="n">operation</span><spanclass="o">=</span><spanclass="default_value">''</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.send_AdminPortal2Server"><spanclass="viewcode-link">[source]</span></a><aclass="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.
<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>
<codeclass="sig-name descname">portal_receive_status</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_status"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_receive_launcher2portal</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_launcher2portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_receive_server2portal</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_server2portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_receive_adminserver2portal</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_adminserver2portal"title="Permalink to this definition">¶</a></dt>