<spanid="evennia-server-package"></span><h1>evennia.server package<aclass="headerlink"href="#module-evennia.server"title="Permalink to this headline">¶</a></h1>
<p>This sub-package holds the Server and Portal programs - the “core” of
Evennia. It also contains the SessionHandler that manages all
connected users as well as defines all the connection protocols used
to connect to the game.</p>
<divclass="section"id="subpackages">
<h2>Subpackages<aclass="headerlink"href="#subpackages"title="Permalink to this headline">¶</a></h2>
<spanid="evennia-server-admin-module"></span><h2>evennia.server.admin module<aclass="headerlink"href="#module-evennia.server.admin"title="Permalink to this headline">¶</a></h2>
<dlclass="class">
<dtid="evennia.server.admin.ServerConfigAdmin">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.admin.</code><codeclass="sig-name descname">ServerConfigAdmin</code><spanclass="sig-paren">(</span><emclass="sig-param">model</em>, <emclass="sig-param">admin_site</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/admin.html#ServerConfigAdmin"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.admin.ServerConfigAdmin"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">list_display</code><emclass="property"> = ('db_key', 'db_value')</em><aclass="headerlink"href="#evennia.server.admin.ServerConfigAdmin.list_display"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">list_display_links</code><emclass="property"> = ('db_key',)</em><aclass="headerlink"href="#evennia.server.admin.ServerConfigAdmin.list_display_links"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">list_select_related</code><emclass="property"> = True</em><aclass="headerlink"href="#evennia.server.admin.ServerConfigAdmin.list_select_related"title="Permalink to this definition">¶</a></dt>
<emclass="property">property </em><codeclass="sig-name descname">media</code><aclass="headerlink"href="#evennia.server.admin.ServerConfigAdmin.media"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">ordering</code><emclass="property"> = ['db_key', 'db_value']</em><aclass="headerlink"href="#evennia.server.admin.ServerConfigAdmin.ordering"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">save_as</code><emclass="property"> = True</em><aclass="headerlink"href="#evennia.server.admin.ServerConfigAdmin.save_as"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">save_on_top</code><emclass="property"> = True</em><aclass="headerlink"href="#evennia.server.admin.ServerConfigAdmin.save_on_top"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">search_fields</code><emclass="property"> = ['db_key']</em><aclass="headerlink"href="#evennia.server.admin.ServerConfigAdmin.search_fields"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-server-amp-client-module"></span><h2>evennia.server.amp_client module<aclass="headerlink"href="#module-evennia.server.amp_client"title="Permalink to this headline">¶</a></h2>
<p>The Evennia Server service acts as an AMP-client when talking to the
Portal. This module sets up the Client-side communication.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.amp_client.</code><codeclass="sig-name descname">AMPClientFactory</code><spanclass="sig-paren">(</span><emclass="sig-param">server</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPClientFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPClientFactory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">server</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPClientFactory.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPClientFactory.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initializes the client factory.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>server</strong> (<em>server</em>) – server instance.</p>
<codeclass="sig-name descname">buildProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">addr</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPClientFactory.buildProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPClientFactory.buildProtocol"title="Permalink to this definition">¶</a></dt>
<dd><p>Creates an AMPProtocol instance when connecting to the AMP server.</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>
<codeclass="sig-name descname">clientConnectionFailed</code><spanclass="sig-paren">(</span><emclass="sig-param">connector</em>, <emclass="sig-param">reason</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPClientFactory.clientConnectionFailed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPClientFactory.clientConnectionFailed"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when an AMP connection attempt to the MUD server fails.</p>
<codeclass="sig-name descname">clientConnectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param">connector</em>, <emclass="sig-param">reason</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPClientFactory.clientConnectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPClientFactory.clientConnectionLost"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the AMP connection to the MUD server is lost.</p>
<codeclass="sig-name descname">factor</code><emclass="property"> = 1.5</em><aclass="headerlink"href="#evennia.server.amp_client.AMPClientFactory.factor"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">initialDelay</code><emclass="property"> = 1</em><aclass="headerlink"href="#evennia.server.amp_client.AMPClientFactory.initialDelay"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">maxDelay</code><emclass="property"> = 1</em><aclass="headerlink"href="#evennia.server.amp_client.AMPClientFactory.maxDelay"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.amp_client.AMPClientFactory.noisy"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">startedConnecting</code><spanclass="sig-paren">(</span><emclass="sig-param">connector</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPClientFactory.startedConnecting"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPClientFactory.startedConnecting"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when starting to try to connect to the Portal AMP server.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.amp_client.</code><codeclass="sig-name descname">AMPServerClientProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPServerClientProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">connectionMade</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol.connectionMade"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPServerClientProtocol.connectionMade"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when a new connection is established.</p>
<codeclass="sig-name descname">data_to_portal</code><spanclass="sig-paren">(</span><emclass="sig-param">command</em>, <emclass="sig-param">sessid</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol.data_to_portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPServerClientProtocol.data_to_portal"title="Permalink to this definition">¶</a></dt>
<dd><p>Send data across the wire to the Portal</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>) – Any data to pickle into the command.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>A deferred with an errback.</p>
</dd>
<dtclass="field-odd">Return type</dt>
<ddclass="field-odd"><p>deferred (deferred or None)</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>Data will be sent across the wire pickled as a tuple
<codeclass="sig-name descname">send_AdminServer2Portal</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">operation=''</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol.send_AdminServer2Portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPServerClientProtocol.send_AdminServer2Portal"title="Permalink to this definition">¶</a></dt>
<dd><p>Administrative access method called by the Server to send an
<codeclass="sig-name descname">send_MsgServer2Portal</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol.send_MsgServer2Portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPServerClientProtocol.send_MsgServer2Portal"title="Permalink to this definition">¶</a></dt>
<dd><dlclass="simple">
<dt>Access method - executed on the Server for sending data</dt><dd><p>to Portal.</p>
<codeclass="sig-name descname">server_receive_adminportal2server</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.amp_client.AMPServerClientProtocol.server_receive_adminportal2server"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">server_receive_msgportal2server</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.amp_client.AMPServerClientProtocol.server_receive_msgportal2server"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">server_receive_status</code><spanclass="sig-paren">(</span><emclass="sig-param">question</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol.server_receive_status"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.amp_client.AMPServerClientProtocol.server_receive_status"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-server-connection-wizard-module"></span><h2>evennia.server.connection_wizard module<aclass="headerlink"href="#module-evennia.server.connection_wizard"title="Permalink to this headline">¶</a></h2>
<p>Link Evennia to external resources (wizard plugin for evennia_launcher)</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.connection_wizard.</code><codeclass="sig-name descname">ConnectionWizard</code><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#ConnectionWizard"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.ConnectionWizard"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#ConnectionWizard.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.ConnectionWizard.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">ask_choice</code><spanclass="sig-paren">(</span><emclass="sig-param">prompt=' > '</em>, <emclass="sig-param">options=None</em>, <emclass="sig-param">default=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#ConnectionWizard.ask_choice"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.ConnectionWizard.ask_choice"title="Permalink to this definition">¶</a></dt>
<dd><p>Ask multiple-choice question, get response inline.</p>
<codeclass="sig-name descname">ask_continue</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#ConnectionWizard.ask_continue"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.ConnectionWizard.ask_continue"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">ask_input</code><spanclass="sig-paren">(</span><emclass="sig-param">prompt=' > '</em>, <emclass="sig-param">default=None</em>, <emclass="sig-param">validator=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#ConnectionWizard.ask_input"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.ConnectionWizard.ask_input"title="Permalink to this definition">¶</a></dt>
<dd><p>Get arbitrary input inline.</p>
<dl>
<dt>Kwargs:</dt><dd><p>prompt (str): The display prompt.
default (str): If empty input, use this.
validator (callable): If given, the input will be passed</p>
<blockquote>
<div><p>into this callable. It should return True unless validation
fails (and is expected to echo why if so).</p>
</div></blockquote>
</dd>
</dl>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>The input given, or default.</p>
<codeclass="sig-name descname">ask_node</code><spanclass="sig-paren">(</span><emclass="sig-param">options</em>, <emclass="sig-param">prompt='Enter choice: '</em>, <emclass="sig-param">default=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#ConnectionWizard.ask_node"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.ConnectionWizard.ask_node"title="Permalink to this definition">¶</a></dt>
<dd><p>Retrieve options and jump to different menu nodes</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>options</strong> (<em>dict</em>) – Node options on the form {key: (desc, callback), }</p></li>
<li><p><strong>prompt</strong> (<em>str</em><em>, </em><em>optional</em>) – Question to ask</p></li>
<li><p><strong>default</strong> (<em>str</em><em>, </em><em>optional</em>) – Default value to use if user hits return.</p></li>
<codeclass="sig-name descname">ask_yesno</code><spanclass="sig-paren">(</span><emclass="sig-param">prompt</em>, <emclass="sig-param">default='yes'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#ConnectionWizard.ask_yesno"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.ConnectionWizard.ask_yesno"title="Permalink to this definition">¶</a></dt>
<dd><p>Ask a yes/no question inline.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>prompt (str): The prompt to ask.
default (str): “yes” or “no”, used if pressing return.</p>
<codeclass="sig-name descname">display</code><spanclass="sig-paren">(</span><emclass="sig-param">text</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#ConnectionWizard.display"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.ConnectionWizard.display"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.connection_wizard.</code><codeclass="sig-name descname">_save_changes</code><spanclass="sig-paren">(</span><emclass="sig-param">wizard</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#_save_changes"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard._save_changes"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.connection_wizard.</code><codeclass="sig-name descname">node_game_index_fields</code><spanclass="sig-paren">(</span><emclass="sig-param">wizard</em>, <emclass="sig-param">status=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#node_game_index_fields"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.node_game_index_fields"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.connection_wizard.</code><codeclass="sig-name descname">node_game_index_start</code><spanclass="sig-paren">(</span><emclass="sig-param">wizard</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#node_game_index_start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.node_game_index_start"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.connection_wizard.</code><codeclass="sig-name descname">node_mssp_start</code><spanclass="sig-paren">(</span><emclass="sig-param">wizard</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#node_mssp_start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.node_mssp_start"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.connection_wizard.</code><codeclass="sig-name descname">node_start</code><spanclass="sig-paren">(</span><emclass="sig-param">wizard</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#node_start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.node_start"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.connection_wizard.</code><codeclass="sig-name descname">node_view_and_apply_settings</code><spanclass="sig-paren">(</span><emclass="sig-param">wizard</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/connection_wizard.html#node_view_and_apply_settings"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.connection_wizard.node_view_and_apply_settings"title="Permalink to this definition">¶</a></dt>
<dd><p>Inspect and save the data gathered in the other nodes</p>
<spanid="evennia-server-deprecations-module"></span><h2>evennia.server.deprecations module<aclass="headerlink"href="#module-evennia.server.deprecations"title="Permalink to this headline">¶</a></h2>
<p>This module contains historical deprecations that the Evennia launcher
checks for.</p>
<p>These all print to the terminal.</p>
<dlclass="function">
<dtid="evennia.server.deprecations.check_errors">
<codeclass="sig-prename descclassname">evennia.server.deprecations.</code><codeclass="sig-name descname">check_errors</code><spanclass="sig-paren">(</span><emclass="sig-param">settings</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/deprecations.html#check_errors"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.deprecations.check_errors"title="Permalink to this definition">¶</a></dt>
<dd><p>Check for deprecations that are critical errors and should stop
the launcher.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>settings</strong> (<em>Settings</em>) – The Django settings file</p>
</dd>
<dtclass="field-even">Raises</dt>
<ddclass="field-even"><p><strong>DeprecationWarning if a critical deprecation is found.</strong>–</p>
<codeclass="sig-prename descclassname">evennia.server.deprecations.</code><codeclass="sig-name descname">check_warnings</code><spanclass="sig-paren">(</span><emclass="sig-param">settings</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/deprecations.html#check_warnings"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.deprecations.check_warnings"title="Permalink to this definition">¶</a></dt>
<dd><p>Check conditions and deprecations that should produce warnings but which
<spanid="evennia-server-evennia-launcher-module"></span><h2>evennia.server.evennia_launcher module<aclass="headerlink"href="#module-evennia.server.evennia_launcher"title="Permalink to this headline">¶</a></h2>
<p>Evennia launcher program</p>
<p>This is the start point for running Evennia.</p>
<p>Sets the appropriate environmental variables for managing an Evennia game. It will start and connect
to the Portal, through which the Server is also controlled. This pprogram</p>
<p>Run the script with the -h flag to see usage information.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">AMPLauncherProtocol</code><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#AMPLauncherProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.AMPLauncherProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#AMPLauncherProtocol.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.AMPLauncherProtocol.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">receive_status_from_portal</code><spanclass="sig-paren">(</span><emclass="sig-param">status</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#AMPLauncherProtocol.receive_status_from_portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.AMPLauncherProtocol.receive_status_from_portal"title="Permalink to this definition">¶</a></dt>
<dd><p>Get a status signal from portal - fire next queued
<codeclass="sig-name descname">wait_for_status</code><spanclass="sig-paren">(</span><emclass="sig-param">callback</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#AMPLauncherProtocol.wait_for_status"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.AMPLauncherProtocol.wait_for_status"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">MsgLauncher2Portal</code><spanclass="sig-paren">(</span><emclass="sig-param">**kw</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#MsgLauncher2Portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgLauncher2Portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgLauncher2Portal.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'MsgLauncher2Portal'</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgLauncher2Portal.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">errors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgLauncher2Portal.errors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'MsgLauncher2Portal'</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgLauncher2Portal.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgLauncher2Portal.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgLauncher2Portal.reverseErrors"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">MsgStatus</code><spanclass="sig-paren">(</span><emclass="sig-param">**kw</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#MsgStatus"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgStatus"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgStatus.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">arguments</code><emclass="property"> = [(b'status', <twisted.protocols.amp.String object>)]</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgStatus.arguments"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'MsgStatus'</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgStatus.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">errors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgStatus.errors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'MsgStatus'</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgStatus.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property"> = [(b'status', <twisted.protocols.amp.String object>)]</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgStatus.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.evennia_launcher.MsgStatus.reverseErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">_file_names_compact</code><spanclass="sig-paren">(</span><emclass="sig-param">filepath1</em>, <emclass="sig-param">filepath2</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#_file_names_compact"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher._file_names_compact"title="Permalink to this definition">¶</a></dt>
<dd><p>Compact the output of filenames with same base dir</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">_get_twistd_cmdline</code><spanclass="sig-paren">(</span><emclass="sig-param">pprofiler</em>, <emclass="sig-param">sprofiler</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#_get_twistd_cmdline"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher._get_twistd_cmdline"title="Permalink to this definition">¶</a></dt>
<dd><p>Compile the command line for starting a Twisted application using the ‘twistd’ executable.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">_is_windows</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#_is_windows"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher._is_windows"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">_parse_status</code><spanclass="sig-paren">(</span><emclass="sig-param">response</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#_parse_status"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher._parse_status"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">_print_info</code><spanclass="sig-paren">(</span><emclass="sig-param">portal_info_dict</em>, <emclass="sig-param">server_info_dict</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#_print_info"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher._print_info"title="Permalink to this definition">¶</a></dt>
<dd><p>Format info dicts from the Portal/Server for display</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">_reactor_stop</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#_reactor_stop"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher._reactor_stop"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">check_database</code><spanclass="sig-paren">(</span><emclass="sig-param">always_return=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#check_database"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.check_database"title="Permalink to this definition">¶</a></dt>
<dd><p>Check so the database exists.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>always_return</strong> (<em>bool</em><em>, </em><em>optional</em>) – If set, will always return True/False
also on critical errors. No output will be printed.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><cite>True</cite> if the database exists, otherwise <cite>False</cite>.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">check_main_evennia_dependencies</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#check_main_evennia_dependencies"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.check_main_evennia_dependencies"title="Permalink to this definition">¶</a></dt>
<dd><p>Checks and imports the Evennia dependencies. This must be done
already before the paths are set up.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>True if no dependency error was found.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">collectstatic</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#collectstatic"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.collectstatic"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">create_game_directory</code><spanclass="sig-paren">(</span><emclass="sig-param">dirname</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#create_game_directory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.create_game_directory"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize a new game directory named dirname
at the current path. This means copying the
template directory from evennia’s root.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>dirname</strong> (<em>str</em>) – The directory name to create.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">create_secret_key</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#create_secret_key"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.create_secret_key"title="Permalink to this definition">¶</a></dt>
<dd><p>Randomly create the secret key for the settings file</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">create_settings_file</code><spanclass="sig-paren">(</span><emclass="sig-param">init=True</em>, <emclass="sig-param">secret_settings=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#create_settings_file"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.create_settings_file"title="Permalink to this definition">¶</a></dt>
<dd><p>Uses the template settings file to build a working settings file.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>init</strong> (<em>bool</em>) – This is part of the normal evennia –init
operation. If false, this function will copy a fresh
template file in (asking if it already exists).</p></li>
<li><p><strong>secret_settings</strong> (<em>bool</em><em>, </em><em>optional</em>) – If False, create settings.py, otherwise
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">create_superuser</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#create_superuser"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.create_superuser"title="Permalink to this definition">¶</a></dt>
<dd><p>Create the superuser account</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.evennia_launcher.del_pid">
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">del_pid</code><spanclass="sig-paren">(</span><emclass="sig-param">pidfile</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#del_pid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.del_pid"title="Permalink to this definition">¶</a></dt>
<dd><p>The pidfile should normally be removed after a process has
finished, but when sending certain signals they remain, so we need
to clean them manually.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>pidfile</strong> (<em>str</em>) – The path of the pid file.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">error_check_python_modules</code><spanclass="sig-paren">(</span><emclass="sig-param">show_warnings=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#error_check_python_modules"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.error_check_python_modules"title="Permalink to this definition">¶</a></dt>
<dd><p>Import settings modules in settings. This will raise exceptions on
pure python-syntax issues which are hard to catch gracefully with
exceptions in the engine (since they are formatting errors in the
python source files themselves). Best they fail already here
before we get any further.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>show_warnings (bool): If non-fatal warning messages should be shown.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">evennia_version</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#evennia_version"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.evennia_version"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the Evennia version info from the main package.</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.evennia_launcher.get_pid">
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">get_pid</code><spanclass="sig-paren">(</span><emclass="sig-param">pidfile</em>, <emclass="sig-param">default=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#get_pid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.get_pid"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the PID (Process ID) by trying to access an PID file.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>pidfile</strong> (<em>str</em>) – The path of the pid file.</p></li>
<li><p><strong>default</strong> (<em>int</em><em>, </em><em>optional</em>) – What to return if file does not exist.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>The process id or <cite>default</cite>.</p>
</dd>
<dtclass="field-odd">Return type</dt>
<ddclass="field-odd"><p>pid (str)</p>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.evennia_launcher.getenv">
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">getenv</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#getenv"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.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>Environment global dict.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">init_game_directory</code><spanclass="sig-paren">(</span><emclass="sig-param">path</em>, <emclass="sig-param">check_db=True</em>, <emclass="sig-param">need_gamedir=True</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#init_game_directory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.init_game_directory"title="Permalink to this definition">¶</a></dt>
<dd><p>Try to analyze the given path to find settings.py - this defines
the game directory and also sets PYTHONPATH as well as the django
path.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>path</strong> (<em>str</em>) – Path to new game directory, including its name.</p></li>
<li><p><strong>check_db</strong> (<em>bool</em><em>, </em><em>optional</em>) – Check if the databae exists.</p></li>
<li><p><strong>need_gamedir</strong> (<em>bool</em><em>, </em><em>optional</em>) – set to False if Evennia doesn’t require to
be run in a valid game directory.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.evennia_launcher.kill">
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">kill</code><spanclass="sig-paren">(</span><emclass="sig-param">pidfile</em>, <emclass="sig-param">component='Server'</em>, <emclass="sig-param">callback=None</em>, <emclass="sig-param">errback=None</em>, <emclass="sig-param">killsignal=<Signals.SIGINT: 2></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#kill"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.kill"title="Permalink to this definition">¶</a></dt>
<dd><p>Send a kill signal to a process based on PID. A customized
success/error message will be returned. If clean=True, the system
will attempt to manually remove the pid file. On Windows, no arguments
are useful since Windows has no ability to direct signals except to all
children of a console.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>pidfile</strong> (<em>str</em>) – The path of the pidfile to get the PID from. This is ignored
on Windows.</p></li>
<li><p><strong>component</strong> (<em>str</em><em>, </em><em>optional</em>) – Usually one of ‘Server’ or ‘Portal’. This is
ignored on Windows.</p></li>
<li><p><strong>errback</strong> (<em>callable</em><em>, </em><em>optional</em>) – Called if signal failed to send. This
is ignored on Windows.</p></li>
<li><p><strong>callback</strong> (<em>callable</em><em>, </em><em>optional</em>) – Called if kill signal was sent successfully.
This is ignored on Windows.</p></li>
<li><p><strong>killsignal</strong> (<em>int</em><em>, </em><em>optional</em>) – Signal identifier for signal to send. This is
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">list_settings</code><spanclass="sig-paren">(</span><emclass="sig-param">keys</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#list_settings"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.list_settings"title="Permalink to this definition">¶</a></dt>
<dd><p>Display the server settings. We only display the Evennia specific
settings here. The result will be printed to the terminal.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>keys</strong> (<em>str</em><em> or </em><em>list</em>) – Setting key or keys to inspect.</p>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.evennia_launcher.main">
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">main</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#main"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.main"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">query_info</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#query_info"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.query_info"title="Permalink to this definition">¶</a></dt>
<dd><p>Display the info strings from the running Evennia</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">query_status</code><spanclass="sig-paren">(</span><emclass="sig-param">callback=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#query_status"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.query_status"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">reboot_evennia</code><spanclass="sig-paren">(</span><emclass="sig-param">pprofiler=False</em>, <emclass="sig-param">sprofiler=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#reboot_evennia"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.reboot_evennia"title="Permalink to this definition">¶</a></dt>
<dd><p>This is essentially an evennia stop && evennia start except we make sure
the system has successfully shut down before starting it again.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">reload_evennia</code><spanclass="sig-paren">(</span><emclass="sig-param">sprofiler=False</em>, <emclass="sig-param">reset=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#reload_evennia"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.reload_evennia"title="Permalink to this definition">¶</a></dt>
<dd><p>This will instruct the Portal to reboot the Server component. We
do this manually by telling the server to shutdown (in reload mode)
and wait for the portal to report back, at which point we start the
server again. This way we control the process exactly.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">run_connect_wizard</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#run_connect_wizard"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.run_connect_wizard"title="Permalink to this definition">¶</a></dt>
<dd><p>Run the linking wizard, for adding new external connections.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">run_dummyrunner</code><spanclass="sig-paren">(</span><emclass="sig-param">number_of_dummies</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#run_dummyrunner"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.run_dummyrunner"title="Permalink to this definition">¶</a></dt>
<dd><p>Start an instance of the dummyrunner</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>number_of_dummies</strong> (<em>int</em>) – The number of dummy accounts to start.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>The dummy accounts’ behavior can be customized by adding a
<cite>dummyrunner_settings.py</cite> config file in the game’s conf/
directory.</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.evennia_launcher.run_menu">
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">run_menu</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#run_menu"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.run_menu"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">send_instruction</code><spanclass="sig-paren">(</span><emclass="sig-param">operation</em>, <emclass="sig-param">arguments</em>, <emclass="sig-param">callback=None</em>, <emclass="sig-param">errback=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#send_instruction"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.send_instruction"title="Permalink to this definition">¶</a></dt>
<dd><p>Send instruction and handle the response.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">set_gamedir</code><spanclass="sig-paren">(</span><emclass="sig-param">path</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#set_gamedir"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.set_gamedir"title="Permalink to this definition">¶</a></dt>
<dd><p>Set GAMEDIR based on path, by figuring out where the setting file
is inside the directory tree. This allows for running the launcher
from elsewhere than the top of the gamedir folder.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">show_version_info</code><spanclass="sig-paren">(</span><emclass="sig-param">about=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#show_version_info"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.show_version_info"title="Permalink to this definition">¶</a></dt>
<dd><p>Display version info.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>about</strong> (<em>bool</em>) – Include ABOUT info as well as version numbers.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>A complete version info string.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">start_evennia</code><spanclass="sig-paren">(</span><emclass="sig-param">pprofiler=False</em>, <emclass="sig-param">sprofiler=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#start_evennia"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.start_evennia"title="Permalink to this definition">¶</a></dt>
<dd><p>This will start Evennia anew by launching the Evennia Portal (which in turn
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">start_only_server</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#start_only_server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.start_only_server"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">start_portal_interactive</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#start_portal_interactive"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.start_portal_interactive"title="Permalink to this definition">¶</a></dt>
<dd><p>Start the Portal under control of the launcher process (foreground)</p>
<pclass="rubric">Notes</p>
<p>In a normal start, the launcher waits for the Portal to start, then
tells it to start the Server. Since we can’t do this here, we instead
start the Server first and then starts the Portal - the Server will
auto-reconnect to the Portal. To allow the Server to be reloaded, this
relies on a fixed server server-cmdline stored as a fallback on the
portal application in evennia/server/portal/portal.py.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">start_server_interactive</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#start_server_interactive"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.start_server_interactive"title="Permalink to this definition">¶</a></dt>
<dd><p>Start the Server under control of the launcher process (foreground)</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">stop_evennia</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#stop_evennia"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.stop_evennia"title="Permalink to this definition">¶</a></dt>
<dd><p>This instructs the Portal to stop the Server and then itself.</p>
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">stop_server_only</code><spanclass="sig-paren">(</span><emclass="sig-param">when_stopped=None</em>, <emclass="sig-param">interactive=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#stop_server_only"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.stop_server_only"title="Permalink to this definition">¶</a></dt>
<dd><p>Only stop the Server-component of Evennia (this is not useful except for debug)</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>when_stopped</strong> (<em>callable</em>) – This will be called with no arguments when Server has stopped (or
if it had already stopped when this is called).</p></li>
<li><p><strong>interactive</strong> (<em>bool</em><em>, </em><em>optional</em>) – Set if this is called as part of the interactive reload
<codeclass="sig-prename descclassname">evennia.server.evennia_launcher.</code><codeclass="sig-name descname">wait_for_status_reply</code><spanclass="sig-paren">(</span><emclass="sig-param">callback</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/evennia_launcher.html#wait_for_status_reply"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.evennia_launcher.wait_for_status_reply"title="Permalink to this definition">¶</a></dt>
<dd><p>Wait for an explicit STATUS signal to be sent back from Evennia.</p>
<spanid="evennia-server-initial-setup-module"></span><h2>evennia.server.initial_setup module<aclass="headerlink"href="#module-evennia.server.initial_setup"title="Permalink to this headline">¶</a></h2>
<p>This module handles initial database propagation, which is only run the first
time the game starts. It will create some default channels, objects, and
<codeclass="sig-prename descclassname">evennia.server.initial_setup.</code><codeclass="sig-name descname">at_initial_setup</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/initial_setup.html#at_initial_setup"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.initial_setup.at_initial_setup"title="Permalink to this definition">¶</a></dt>
<dd><p>Custom hook for users to overload some or all parts of the initial
setup. Called very last in the sequence. It tries to import and
srun a module settings.AT_INITIAL_SETUP_HOOK_MODULE and will fail
silently if this does not exist or fails to load.</p>
<codeclass="sig-prename descclassname">evennia.server.initial_setup.</code><codeclass="sig-name descname">collectstatic</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/initial_setup.html#collectstatic"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.initial_setup.collectstatic"title="Permalink to this definition">¶</a></dt>
<dd><p>Run collectstatic to make sure all web assets are loaded.</p>
<codeclass="sig-prename descclassname">evennia.server.initial_setup.</code><codeclass="sig-name descname">create_channels</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/initial_setup.html#create_channels"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.initial_setup.create_channels"title="Permalink to this definition">¶</a></dt>
<dd><p>Creates some sensible default channels.</p>
<codeclass="sig-prename descclassname">evennia.server.initial_setup.</code><codeclass="sig-name descname">create_objects</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/initial_setup.html#create_objects"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.initial_setup.create_objects"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.initial_setup.</code><codeclass="sig-name descname">get_god_account</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/initial_setup.html#get_god_account"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.initial_setup.get_god_account"title="Permalink to this definition">¶</a></dt>
<dd><p>Creates the god user and don’t take no for an answer.</p>
<codeclass="sig-prename descclassname">evennia.server.initial_setup.</code><codeclass="sig-name descname">handle_setup</code><spanclass="sig-paren">(</span><emclass="sig-param">last_step</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/initial_setup.html#handle_setup"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.initial_setup.handle_setup"title="Permalink to this definition">¶</a></dt>
<dd><p>Main logic for the module. It allows for restarting the
initialization at any point if one of the modules should crash.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>last_step</strong> (<em>int</em>) – The last stored successful step, for starting
over on errors. If <cite>< 0</cite>, initialization has finished and no
<codeclass="sig-prename descclassname">evennia.server.initial_setup.</code><codeclass="sig-name descname">reset_server</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/initial_setup.html#reset_server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.initial_setup.reset_server"title="Permalink to this definition">¶</a></dt>
<dd><p>We end the initialization by resetting the server. This makes sure
the first login is the same as all the following ones,
particularly it cleans all caches for the special objects. It
also checks so the warm-reset mechanism works as it should.</p>
<spanid="evennia-server-inputfuncs-module"></span><h2>evennia.server.inputfuncs module<aclass="headerlink"href="#module-evennia.server.inputfuncs"title="Permalink to this headline">¶</a></h2>
<p>Functions for processing input commands.</p>
<p>All global functions in this module whose name does not start with “_”
is considered an inputfunc. Each function must have the following
callsign (where inputfunc name is always lower-case, no matter what the
<p>Evennia knows which modules to use for inputfuncs by
settings.INPUT_FUNC_MODULES.</p>
<dlclass="function">
<dtid="evennia.server.inputfuncs._GA">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">_GA</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.inputfuncs._GA"title="Permalink to this definition">¶</a></dt>
<dd><p>Return getattr(self, name).</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs._NA">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">_NA</code><spanclass="sig-paren">(</span><emclass="sig-param">o</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#_NA"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs._NA"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs._SA">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">_SA</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.inputfuncs._SA"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">_on_monitor_change</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#_on_monitor_change"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs._on_monitor_change"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">_on_webclient_options_change</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#_on_webclient_options_change"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs._on_webclient_options_change"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the webclient options stored on the account changes.
Inform the interested clients of this change.</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs._testrepeat">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">_testrepeat</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#_testrepeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs._testrepeat"title="Permalink to this definition">¶</a></dt>
<dd><p>This is a test function for using with the repeat
inputfunc.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>session (Session): Session to return to.</p>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.bot_data_in">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">bot_data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#bot_data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.bot_data_in"title="Permalink to this definition">¶</a></dt>
<dd><p>Text input from the IRC and RSS bots.
This will trigger the execute_cmd method on the bots in-game counterpart.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – The active Session to receive the input.</p></li>
<li><p><strong>text</strong> (<em>str</em>) – First arg is text input. Other arguments are ignored.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.client_options">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">client_options</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#client_options"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.client_options"title="Permalink to this definition">¶</a></dt>
<dd><p>This allows the client an OOB way to inform us about its name and capabilities.
This will be integrated into the session settings</p>
<dl>
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>get (bool): If this is true, return the settings as a dict</dt><dd><p>(ignore all other kwargs).</p>
</dd>
</dl>
<p>client (str): A client identifier, like “mushclient”.
version (str): A client version
ansi (bool): Supports ansi colors
xterm256 (bool): Supports xterm256 colors or not
mxp (bool): Supports MXP or not
utf-8 (bool): Supports UTF-8 or not
screenreader (bool): Screen-reader mode on/off
mccp (bool): MCCP compression on/off
screenheight (int): Screen height in lines
screenwidth (int): Screen width in characters
inputdebug (bool): Debug input functions
nocolor (bool): Strip color
raw (bool): Turn off parsing</p>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.default">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">default</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">cmdname</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.default"title="Permalink to this definition">¶</a></dt>
<dd><p>Default catch-function. This is like all other input functions except
it will get <cite>cmdname</cite> as the first argument.</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.echo">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">echo</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#echo"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.echo"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">external_discord_hello</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#external_discord_hello"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.external_discord_hello"title="Permalink to this definition">¶</a></dt>
<dd><p>Sent by Mudlet as a greeting; added here to avoid
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">get_client_options</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#get_client_options"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.get_client_options"title="Permalink to this definition">¶</a></dt>
<dd><p>Alias wrapper for getting options.</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.get_inputfuncs">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">get_inputfuncs</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#get_inputfuncs"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.get_inputfuncs"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the keys of all available inputfuncs. Note that we don’t get
it from this module alone since multiple modules could be added.
So we get it from the sessionhandler.</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.get_value">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">get_value</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#get_value"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.get_value"title="Permalink to this definition">¶</a></dt>
<dd><p>Return the value of a given attribute or db_property on the
session’s current account or character.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>name (str): Name of info value to return. Only names</dt><dd><p>in the _gettable dictionary earlier in this module
are accepted.</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.hello">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">hello</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.inputfuncs.hello"title="Permalink to this definition">¶</a></dt>
<dd><p>This allows the client an OOB way to inform us about its name and capabilities.
This will be integrated into the session settings</p>
<dl>
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>get (bool): If this is true, return the settings as a dict</dt><dd><p>(ignore all other kwargs).</p>
</dd>
</dl>
<p>client (str): A client identifier, like “mushclient”.
version (str): A client version
ansi (bool): Supports ansi colors
xterm256 (bool): Supports xterm256 colors or not
mxp (bool): Supports MXP or not
utf-8 (bool): Supports UTF-8 or not
screenreader (bool): Screen-reader mode on/off
mccp (bool): MCCP compression on/off
screenheight (int): Screen height in lines
screenwidth (int): Screen width in characters
inputdebug (bool): Debug input functions
nocolor (bool): Strip color
raw (bool): Turn off parsing</p>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.login">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">login</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.login"title="Permalink to this definition">¶</a></dt>
<dd><p>Peform a login. This only works if session is currently not logged
in. This will also automatically throttle too quick attempts.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>name (str): Account name
password (str): Plain-text password</p>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.monitor">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">monitor</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#monitor"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.monitor"title="Permalink to this definition">¶</a></dt>
<dd><p>Adds monitoring to a given property or Attribute.</p>
<dl>
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>name (str): The name of the property or Attribute</dt><dd><p>to report. No db_* prefix is needed. Only names
in the _monitorable dict earlier in this module
are accepted.</p>
</dd>
</dl>
<p>stop (bool): Stop monitoring the above name.
outputfunc_name (str, optional): Change the name of</p>
<blockquote>
<div><p>the outputfunc name. This is used e.g. by MSDP which
has its own specific output format.</p>
</div></blockquote>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.monitored">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">monitored</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#monitored"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.monitored"title="Permalink to this definition">¶</a></dt>
<dd><p>Report on what is being monitored</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.msdp_list">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">msdp_list</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#msdp_list"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.msdp_list"title="Permalink to this definition">¶</a></dt>
<dd><p>MSDP LIST command</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.msdp_report">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">msdp_report</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#msdp_report"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.msdp_report"title="Permalink to this definition">¶</a></dt>
<dd><p>MSDP REPORT command</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.msdp_send">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">msdp_send</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#msdp_send"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.msdp_send"title="Permalink to this definition">¶</a></dt>
<dd><p>MSDP SEND command</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.msdp_unreport">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">msdp_unreport</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#msdp_unreport"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.msdp_unreport"title="Permalink to this definition">¶</a></dt>
<dd><p>MSDP UNREPORT command</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.repeat">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">repeat</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#repeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.repeat"title="Permalink to this definition">¶</a></dt>
<dd><p>Call a named function repeatedly. Note that
this is meant as an example of limiting the number of
possible call functions.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>callback (str): The function to call. Only functions</dt><dd><p>from the _repeatable dictionary earlier in this
module are available.</p>
</dd>
<dt>interval (int): How often to call function (s).</dt><dd><dlclass="simple">
<dt>Defaults to once every 60 seconds with a minimum</dt><dd><p>of 5 seconds.</p>
</dd>
</dl>
</dd>
<dt>stop (bool): Stop a previously assigned ticker with</dt><dd><p>the above settings.</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.supports_set">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">supports_set</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.inputfuncs.supports_set"title="Permalink to this definition">¶</a></dt>
<dd><p>This allows the client an OOB way to inform us about its name and capabilities.
This will be integrated into the session settings</p>
<dl>
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>get (bool): If this is true, return the settings as a dict</dt><dd><p>(ignore all other kwargs).</p>
</dd>
</dl>
<p>client (str): A client identifier, like “mushclient”.
version (str): A client version
ansi (bool): Supports ansi colors
xterm256 (bool): Supports xterm256 colors or not
mxp (bool): Supports MXP or not
utf-8 (bool): Supports UTF-8 or not
screenreader (bool): Screen-reader mode on/off
mccp (bool): MCCP compression on/off
screenheight (int): Screen height in lines
screenwidth (int): Screen width in characters
inputdebug (bool): Debug input functions
nocolor (bool): Strip color
raw (bool): Turn off parsing</p>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.text">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">text</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#text"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.text"title="Permalink to this definition">¶</a></dt>
<dd><p>Main text input from the client. This will execute a command
string on the server.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – The active Session to receive the input.</p></li>
<li><p><strong>text</strong> (<em>str</em>) – First arg is used as text-command input. Other
arguments are ignored.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.unmonitor">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">unmonitor</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#unmonitor"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.unmonitor"title="Permalink to this definition">¶</a></dt>
<dd><p>Wrapper for turning off monitoring</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.inputfuncs.unrepeat">
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">unrepeat</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#unrepeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.unrepeat"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.inputfuncs.</code><codeclass="sig-name descname">webclient_options</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/inputfuncs.html#webclient_options"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.inputfuncs.webclient_options"title="Permalink to this definition">¶</a></dt>
<dd><p>Handles retrieving and changing of options related to the webclient.</p>
<p>If kwargs is empty (or contains just a “cmdid”), the saved options will be
sent back to the session.
A monitor handler will be created to inform the client of any future options
that changes.</p>
<p>If kwargs is not empty, the key/values stored in there will be persisted
to the account object.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p><option name>: an option to save</p>
<spanid="evennia-server-manager-module"></span><h2>evennia.server.manager module<aclass="headerlink"href="#module-evennia.server.manager"title="Permalink to this headline">¶</a></h2>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.manager.</code><codeclass="sig-name descname">ServerConfigManager</code><aclass="reference internal"href="../_modules/evennia/server/manager.html#ServerConfigManager"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.manager.ServerConfigManager"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">conf</code><spanclass="sig-paren">(</span><emclass="sig-param">key=None</em>, <emclass="sig-param">value=None</em>, <emclass="sig-param">delete=False</em>, <emclass="sig-param">default=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/manager.html#ServerConfigManager.conf"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.manager.ServerConfigManager.conf"title="Permalink to this definition">¶</a></dt>
<dd><p>Add, retrieve and manipulate config values.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) – Name of config.</p></li>
<li><p><strong>value</strong> (<em>str</em><em>, </em><em>optional</em>) – Data to store in this config value.</p></li>
<li><p><strong>delete</strong> (<em>bool</em><em>, </em><em>optional</em>) – If <cite>True</cite>, delete config with <cite>key</cite>.</p></li>
<li><p><strong>default</strong> (<em>str</em><em>, </em><em>optional</em>) – Use when retrieving a config value
by a key that does not exist.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><p>If <cite>key</cite> was not given - all stored config values.
value (str): If <cite>key</cite> was given, this is the stored value, or</p>
<blockquote>
<div><p><cite>default</cite> if no matching <cite>key</cite> was found.</p>
<spanid="evennia-server-models-module"></span><h2>evennia.server.models module<aclass="headerlink"href="#module-evennia.server.models"title="Permalink to this headline">¶</a></h2>
<p>Server Configuration flags</p>
<p>This holds persistent server configuration flags.</p>
<p>Config values should usually be set through the
manager’s conf() method.</p>
<dlclass="class">
<dtid="evennia.server.models.ServerConfig">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.models.</code><codeclass="sig-name descname">ServerConfig</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/models.html#ServerConfig"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.models.ServerConfig"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.server.models.ServerConfig.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.server.models.ServerConfig.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_ServerConfig__key_del</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.models.ServerConfig._ServerConfig__key_del"title="Permalink to this definition">¶</a></dt>
<dd><p>Deleter. Allows for del self.key. Deletes entry.</p>
<codeclass="sig-name descname">_ServerConfig__key_get</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.models.ServerConfig._ServerConfig__key_get"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_ServerConfig__key_set</code><spanclass="sig-paren">(</span><emclass="sig-param">value</em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.models.ServerConfig._ServerConfig__key_set"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_ServerConfig__value_del</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.models.ServerConfig._ServerConfig__value_del"title="Permalink to this definition">¶</a></dt>
<dd><p>Deleter. Allows for del self.value. Deletes entry.</p>
<codeclass="sig-name descname">_ServerConfig__value_get</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.models.ServerConfig._ServerConfig__value_get"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_ServerConfig__value_set</code><spanclass="sig-paren">(</span><emclass="sig-param">value</em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.models.ServerConfig._ServerConfig__value_set"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_is_deleted</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.models.ServerConfig._is_deleted"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.server.models.ServerConfig._meta">
<codeclass="sig-name descname">_meta</code><emclass="property"> = <Options for ServerConfig></em><aclass="headerlink"href="#evennia.server.models.ServerConfig._meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">db_key</code><aclass="headerlink"href="#evennia.server.models.ServerConfig.db_key"title="Permalink to this definition">¶</a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
<codeclass="sig-name descname">db_value</code><aclass="headerlink"href="#evennia.server.models.ServerConfig.db_value"title="Permalink to this definition">¶</a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dlclass="attribute">
<dtid="evennia.server.models.ServerConfig.id">
<codeclass="sig-name descname">id</code><aclass="headerlink"href="#evennia.server.models.ServerConfig.id"title="Permalink to this definition">¶</a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.models.ServerConfig.key">
<emclass="property">property </em><codeclass="sig-name descname">key</code><aclass="headerlink"href="#evennia.server.models.ServerConfig.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">objects</code><emclass="property"> = <evennia.server.manager.ServerConfigManager object></em><aclass="headerlink"href="#evennia.server.models.ServerConfig.objects"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.server.models.ServerConfig.path">
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.server.models.ServerConfig'</em><aclass="headerlink"href="#evennia.server.models.ServerConfig.path"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="method">
<dtid="evennia.server.models.ServerConfig.store">
<codeclass="sig-name descname">store</code><spanclass="sig-paren">(</span><emclass="sig-param">key</em>, <emclass="sig-param">value</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/models.html#ServerConfig.store"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.models.ServerConfig.store"title="Permalink to this definition">¶</a></dt>
<dd><p>Wrap the storage.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>key</strong> (<em>str</em>) – The name of this store.</p></li>
<li><p><strong>value</strong> (<em>str</em>) – The data to store with this <cite>key</cite>.</p></li>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'WeakSharedMemoryModelBase'</em><aclass="headerlink"href="#evennia.server.models.ServerConfig.typename"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="method">
<dtid="evennia.server.models.ServerConfig.value">
<emclass="property">property </em><codeclass="sig-name descname">value</code><aclass="headerlink"href="#evennia.server.models.ServerConfig.value"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-server-server-module"></span><h2>evennia.server.server module<aclass="headerlink"href="#module-evennia.server.server"title="Permalink to this headline">¶</a></h2>
<p>This module implements the main Evennia server process, the core of
the game engine.</p>
<p>This module should be started with the ‘twistd’ executable since it
sets up all the networking features. (this is done automatically
by evennia/server/server_runner.py).</p>
<dlclass="class">
<dtid="evennia.server.server.Evennia">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.server.</code><codeclass="sig-name descname">Evennia</code><spanclass="sig-paren">(</span><emclass="sig-param">application</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia"title="Permalink to this definition">¶</a></dt>
<p>The main Evennia server handler. This object sets up the database and
tracks and interlinks all the twisted network services that make up
evennia.</p>
<dlclass="method">
<dtid="evennia.server.server.Evennia.__init__">
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">application</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Setup the server.</p>
<p>application - an instantiated Twisted application</p>
<codeclass="sig-name descname">at_post_portal_sync</code><spanclass="sig-paren">(</span><emclass="sig-param">mode</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_post_portal_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_post_portal_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called just after the portal has finished syncing back data to the server
after reconnecting.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>mode</strong> (<em>str</em>) – One of reload, reset or shutdown.</p>
<codeclass="sig-name descname">at_server_cold_start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_cold_start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_cold_start"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called only when the server starts “cold”, i.e. after a
<codeclass="sig-name descname">at_server_cold_stop</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_cold_stop"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_cold_stop"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called only when the server goes down due to a shutdown or reset.</p>
<codeclass="sig-name descname">at_server_reload_start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_reload_start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_reload_start"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called only when server starts back up after a reload.</p>
<codeclass="sig-name descname">at_server_reload_stop</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_reload_stop"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_reload_stop"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called only time the server stops before a reload.</p>
<codeclass="sig-name descname">at_server_start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_start"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called every time the server starts up, regardless of
<codeclass="sig-name descname">at_server_stop</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.at_server_stop"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.at_server_stop"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called just before a server is shut down, regardless
<codeclass="sig-name descname">get_info_dict</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.get_info_dict"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.get_info_dict"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">run_init_hooks</code><spanclass="sig-paren">(</span><emclass="sig-param">mode</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.run_init_hooks"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.run_init_hooks"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by the amp client once receiving sync back from Portal</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">run_initial_setup</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.run_initial_setup"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.run_initial_setup"title="Permalink to this definition">¶</a></dt>
<dd><p>This is triggered by the amp protocol when the connection
to the portal has been established.
This attempts to run the initial_setup script of the server.
It returns if this is not the first time the server starts.
Once finished the last_initial_setup_step is set to -1.</p>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.server.Evennia.shutdown">
<codeclass="sig-name descname">shutdown</code><spanclass="sig-paren">(</span><emclass="sig-param">mode='reload'</em>, <emclass="sig-param">_reactor_stopping=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.shutdown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.shutdown"title="Permalink to this definition">¶</a></dt>
<dd><p>Shuts down the server from inside it.</p>
<dl>
<dt>mode - sets the server restart mode.</dt><dd><dlclass="simple">
<dt>‘reload’ - server restarts, no “persistent” scripts</dt><dd><p>are stopped, at_reload hooks called.</p>
</dd>
<dt>‘reset’ - server restarts, non-persistent scripts stopped,</dt><dd><p>at_shutdown hooks called but sessions will not
be disconnected.</p>
</dd>
</dl>
<p>‘shutdown’ - like reset, but server will not auto-restart.</p>
</dd>
<dt>_reactor_stopping - this is set if server is stopped by a kill</dt><dd><dlclass="simple">
<dt>command OR this method was already called</dt><dd><p>once - in both cases the reactor is
<codeclass="sig-name descname">sqlite3_prep</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.sqlite3_prep"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.sqlite3_prep"title="Permalink to this definition">¶</a></dt>
<dd><p>Optimize some SQLite stuff at startup since we
<codeclass="sig-name descname">update_defaults</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#Evennia.update_defaults"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server.Evennia.update_defaults"title="Permalink to this definition">¶</a></dt>
<dd><p>We make sure to store the most important object defaults here, so
we can catch if they change and update them on-objects automatically.
This allows for changing default cmdset locations and default
typeclasses in the settings file and have them auto-update all
already existing objects.</p>
</dd></dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.server._SA">
<codeclass="sig-prename descclassname">evennia.server.server.</code><codeclass="sig-name descname">_SA</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.server._SA"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.server.</code><codeclass="sig-name descname">_server_maintenance</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/server.html#_server_maintenance"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.server._server_maintenance"title="Permalink to this definition">¶</a></dt>
<dd><p>This maintenance function handles repeated checks and updates that
the server needs to do. It is called every minute.</p>
<spanid="evennia-server-serversession-module"></span><h2>evennia.server.serversession module<aclass="headerlink"href="#module-evennia.server.serversession"title="Permalink to this headline">¶</a></h2>
<p>This defines a the Server’s generic session object. This object represents
a connection to the outside world but don’t know any details about how the
connection actually happens (so it’s the same for telnet, web, ssh etc).</p>
<p>It is stored on the Server side (as opposed to protocol-specific sessions which
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.serversession.</code><codeclass="sig-name descname">ServerSession</code><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_ServerSession__cmdset_storage_get</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.serversession.ServerSession._ServerSession__cmdset_storage_get"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_ServerSession__cmdset_storage_set</code><spanclass="sig-paren">(</span><emclass="sig-param">value</em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.serversession.ServerSession._ServerSession__cmdset_storage_set"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initiate to avoid AttributeErrors down the line</p>
<codeclass="sig-name descname">access</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.access"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.access"title="Permalink to this definition">¶</a></dt>
<dd><p>Dummy method to mimic the logged-in API.</p>
<codeclass="sig-name descname">at_cmdset_get</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.at_cmdset_get"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.at_cmdset_get"title="Permalink to this definition">¶</a></dt>
<dd><p>A dummy hook all objects with cmdsets need to have</p>
<codeclass="sig-name descname">at_disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">reason=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.at_disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.at_disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook called by sessionhandler when disconnecting this session.</p>
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><emclass="sig-param">account</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.at_login"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook called by sessionhandler when the session becomes authenticated.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>account</strong> (<em>Account</em>) – The account associated with the session.</p>
<codeclass="sig-name descname">at_sync</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.at_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.at_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called whenever a session has been resynced with the
portal. At this point all relevant attributes have already
been set and self.account been assigned (if applicable).</p>
<p>Since this is often called after a server restart we need to
<codeclass="sig-name descname">attributes</code><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.attributes"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.attributes"title="Permalink to this definition">¶</a></dt>
<emclass="property">property </em><codeclass="sig-name descname">cmdset_storage</code><aclass="headerlink"href="#evennia.server.serversession.ServerSession.cmdset_storage"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.data_in"title="Permalink to this definition">¶</a></dt>
<dd><p>Receiving data from the client, sending it off to
the respective inputfuncs.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>kwargs (any): Incoming data from protocol on</dt><dd><p>the form <cite>{“commandname”: ((args), {kwargs}),…}</cite></p>
</dd>
</dl>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>This method is here in order to give the user
a single place to catch and possibly process all incoming data from
the client. It should usually always end by sending
this data off to <cite>self.sessionhandler.call_inputfuncs(self, **kwargs)</cite>.</p>
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Sending data from Evennia->Client</p>
<dl>
<dt>Kwargs:</dt><dd><p>text (str or tuple)
any (str or tuple): Send-commands identified</p>
<blockquote>
<div><p>by their keys. Or “options”, carrying options
<emclass="property">property </em><codeclass="sig-name descname">db</code><aclass="headerlink"href="#evennia.server.serversession.ServerSession.db"title="Permalink to this definition">¶</a></dt>
<dd><p>NonDataBase). Everything stored
to this is guaranteed to be cleared when a server is shutdown.
Syntax is same as for the _get_db_holder() method and
property, e.g. obj.ndb.attr = value etc.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Type</dt>
<ddclass="field-odd"><p>A non-persistent store (ndb</p>
<codeclass="sig-name descname">execute_cmd</code><spanclass="sig-paren">(</span><emclass="sig-param">raw_string</em>, <emclass="sig-param">session=None</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.execute_cmd"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.execute_cmd"title="Permalink to this definition">¶</a></dt>
<dd><p>Do something as this object. This method is normally never
called directly, instead incoming command instructions are
sent to the appropriate inputfunc already at the sessionhandler
level. This method allows Python code to inject commands into
this stream, and will lead to the text inputfunc be called.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>raw_string</strong> (<em>string</em>) – Raw command input</p></li>
<li><p><strong>session</strong> (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – This is here to make API consistent with
Account/Object.execute_cmd. If given, data is passed to
that Session, otherwise use self.</p></li>
</ul>
</dd>
</dl>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>Other keyword arguments will be added to the found command
object instace as variables before it executes. This is
unused by default Evennia but may be used to set flags and
change operating paramaters for commands at run-time.</p>
<codeclass="sig-name descname">get_account</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.get_account"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.get_account"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the account associated with this session</p>
<codeclass="sig-name descname">get_character</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.serversession.ServerSession.get_character"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the in-game character associated with this session.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>The puppeted object, if any.</p>
<codeclass="sig-name descname">get_client_size</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.get_client_size"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.get_client_size"title="Permalink to this definition">¶</a></dt>
<dd><p>Return eventual eventual width and height reported by the
client. Note that this currently only deals with a single
client window (windowID==0) as in a traditional telnet session.</p>
<codeclass="sig-name descname">get_puppet</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.get_puppet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.get_puppet"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the in-game character associated with this session.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>The puppeted object, if any.</p>
<codeclass="sig-name descname">get_puppet_or_account</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.get_puppet_or_account"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.get_puppet_or_account"title="Permalink to this definition">¶</a></dt>
<dd><p>Get puppet or account.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><dlclass="simple">
<dt>The puppet if one exists,</dt><dd><p>otherwise return the account.</p>
</dd>
</dl>
</p>
</dd>
<dtclass="field-even">Return type</dt>
<ddclass="field-even"><p>controller (Object or Account)</p>
<emclass="property">property </em><codeclass="sig-name descname">id</code><aclass="headerlink"href="#evennia.server.serversession.ServerSession.id"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">log</code><spanclass="sig-paren">(</span><emclass="sig-param">message</em>, <emclass="sig-param">channel=True</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.log"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.log"title="Permalink to this definition">¶</a></dt>
<dd><p>Emits session info to the appropriate outputs and info channels.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>message</strong> (<em>str</em>) – The message to log.</p></li>
<li><p><strong>channel</strong> (<em>bool</em><em>, </em><em>optional</em>) – Log to the CHANNEL_CONNECTINFO channel
<codeclass="sig-name descname">msg</code><spanclass="sig-paren">(</span><emclass="sig-param">text=None</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.msg"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.msg"title="Permalink to this definition">¶</a></dt>
<dd><p>Wrapper to mimic msg() functionality of Objects and Accounts.</p>
<codeclass="sig-name descname">nattributes</code><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.nattributes"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.nattributes"title="Permalink to this definition">¶</a></dt>
<emclass="property">property </em><codeclass="sig-name descname">ndb</code><aclass="headerlink"href="#evennia.server.serversession.ServerSession.ndb"title="Permalink to this definition">¶</a></dt>
<dd><p>NonDataBase). Everything stored
to this is guaranteed to be cleared when a server is shutdown.
Syntax is same as for the _get_db_holder() method and
property, e.g. obj.ndb.attr = value etc.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Type</dt>
<ddclass="field-odd"><p>A non-persistent store (ndb</p>
<codeclass="sig-name descname">ndb_del</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.ndb_del"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.ndb_del"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">ndb_get</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.ndb_get"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.ndb_get"title="Permalink to this definition">¶</a></dt>
<dd><p>A non-persistent store (ndb: NonDataBase). Everything stored
to this is guaranteed to be cleared when a server is shutdown.
Syntax is same as for the _get_db_holder() method and
<codeclass="sig-name descname">ndb_set</code><spanclass="sig-paren">(</span><emclass="sig-param">value</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.ndb_set"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.ndb_set"title="Permalink to this definition">¶</a></dt>
<dd><p>Stop accidentally replacing the db object</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>value</strong> (<em>any</em>) – A value to store in the ndb.</p>
<codeclass="sig-name descname">update_flags</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.update_flags"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.update_flags"title="Permalink to this definition">¶</a></dt>
<dd><p>Update the protocol_flags and sync them with Portal.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>key, value - A key:value pair to set in the</dt><dd><p>protocol_flags dictionary.</p>
</dd>
</dl>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>Since protocols can vary, no checking is done
as to the existene of the flag or not. The input
data should have been validated before this call.</p>
<codeclass="sig-name descname">update_session_counters</code><spanclass="sig-paren">(</span><emclass="sig-param">idle=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/serversession.html#ServerSession.update_session_counters"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.serversession.ServerSession.update_session_counters"title="Permalink to this definition">¶</a></dt>
<dd><p>Hit this when the user enters a command in order to update
idle timers and command counters.</p>
</dd></dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.serversession._GA">
<codeclass="sig-prename descclassname">evennia.server.serversession.</code><codeclass="sig-name descname">_GA</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.serversession._GA"title="Permalink to this definition">¶</a></dt>
<dd><p>Return getattr(self, name).</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.serversession._SA">
<codeclass="sig-prename descclassname">evennia.server.serversession.</code><codeclass="sig-name descname">_SA</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.serversession._SA"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-server-session-module"></span><h2>evennia.server.session module<aclass="headerlink"href="#module-evennia.server.session"title="Permalink to this headline">¶</a></h2>
<p>This module defines a generic session class. All connection instances
(both on Portal and Server side) should inherit from this class.</p>
<dlclass="class">
<dtid="evennia.server.session.Session">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.session.</code><codeclass="sig-name descname">Session</code><aclass="reference internal"href="../_modules/evennia/server/session.html#Session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session"title="Permalink to this definition">¶</a></dt>
<p>This class represents a player’s session and is a template for
both portal- and server-side sessions.</p>
<p>Each connection will see two session instances created:</p>
<blockquote>
<div><olclass="arabic simple">
<li><p>A Portal session. This is customized for the respective connection
protocols that Evennia supports, like Telnet, SSH etc. The Portal
session must call init_session() as part of its initialization. The
respective hook methods should be connected to the methods unique
for the respective protocol so that there is a unified interface
to Evennia.</p></li>
<li><p>A Server session. This is the same for all connected accounts,
regardless of how they connect.</p></li>
</ol>
</div></blockquote>
<p>The Portal and Server have their own respective sessionhandlers. These
are synced whenever new connections happen or the Server restarts etc,
which means much of the same information must be stored in both places
e.g. the portal can re-sync with the server when the server reboots.</p>
<dlclass="method">
<dtid="evennia.server.session.Session.at_sync">
<codeclass="sig-name descname">at_sync</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.at_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.at_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>Called after a session has been fully synced (including
secondary operations such as setting self.account based
on uid etc).</p>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.session.Session.data_in">
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.data_in"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook for protocols to send incoming data to the engine.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>kwargs (any): Other data from the protocol.</p>
</dd>
</dl>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.session.Session.data_out">
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Generic hook for sending data out through the protocol. Server
protocols can use this right away. Portal sessions
should overload this to format/handle the outgoing data as needed.</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>kwargs (any): Other data to the protocol.</p>
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">reason=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>generic hook called from the outside to disconnect this session
should be connected to the protocols actual disconnect mechanism.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em>) – Eventual text motivating the disconnect.</p>
<codeclass="sig-name descname">get_sync_data</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.get_sync_data"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.get_sync_data"title="Permalink to this definition">¶</a></dt>
<dd><p>Get all data relevant to sync the session.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>syncdata</strong> (<em>dict</em>) – All syncdata values, based on
<codeclass="sig-name descname">init_session</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol_key</em>, <emclass="sig-param">address</em>, <emclass="sig-param">sessionhandler</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.init_session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.init_session"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize the Session. This should be called by the protocol when
a new session is established.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>protocol_key</strong> (<em>str</em>) – By default, one of ‘telnet’, ‘telnet/ssl’, ‘ssh’,
‘webclient/websocket’ or ‘webclient/ajax’.</p></li>
<li><p><strong>sessionhandler</strong> (<aclass="reference internal"href="#evennia.server.sessionhandler.SessionHandler"title="evennia.server.sessionhandler.SessionHandler"><em>SessionHandler</em></a>) – Reference to the
<codeclass="sig-name descname">load_sync_data</code><spanclass="sig-paren">(</span><emclass="sig-param">sessdata</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.load_sync_data"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.load_sync_data"title="Permalink to this definition">¶</a></dt>
<dd><p>Takes a session dictionary, as created by get_sync_data, and
loads it into the correct properties of the session.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>sessdata</strong> (<em>dict</em>) – Session data dictionary.</p>
<spanid="evennia-server-sessionhandler-module"></span><h2>evennia.server.sessionhandler module<aclass="headerlink"href="#module-evennia.server.sessionhandler"title="Permalink to this headline">¶</a></h2>
<p>This module defines handlers for storing sessions when handles
sessions of users connecting to the server.</p>
<p>There are two similar but separate stores of sessions:</p>
<blockquote>
<div><ulclass="simple">
<li><dlclass="simple">
<dt>ServerSessionHandler - this stores generic game sessions</dt><dd><p>for the game. These sessions has no knowledge about
how they are connected to the world.</p>
</dd>
</dl>
</li>
<li><dlclass="simple">
<dt>PortalSessionHandler - this stores sessions created by</dt><dd><p>twisted protocols. These are dumb connectors that
handle network communication but holds no game info.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.sessionhandler.</code><codeclass="sig-name descname">DummySession</code><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#DummySession"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.DummySession"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">sessid</code><emclass="property"> = 0</em><aclass="headerlink"href="#evennia.server.sessionhandler.DummySession.sessid"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.sessionhandler.</code><codeclass="sig-name descname">ServerSessionHandler</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_run_cmd_login</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler._run_cmd_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler._run_cmd_login"title="Permalink to this definition">¶</a></dt>
<dd><p>Launch the CMD_LOGINSTART command. This is wrapped
<codeclass="sig-name descname">account_count</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.account_count"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.account_count"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the number of connected accounts (not sessions since a
account may have more than one session depending on settings).
Only logged-in accounts are counted here.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>Number of connected accounts</p>
<codeclass="sig-name descname">all_connected_accounts</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.all_connected_accounts"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.all_connected_accounts"title="Permalink to this definition">¶</a></dt>
<dd><p>Get a unique list of connected and logged-in Accounts.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><dlclass="simple">
<dt>All conected Accounts (which may be fewer than the</dt><dd><p>amount of Sessions due to multi-playing).</p>
<codeclass="sig-name descname">all_sessions_portal_sync</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.all_sessions_portal_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.all_sessions_portal_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by the server when it reboots. It syncs all session data
<codeclass="sig-name descname">announce_all</code><spanclass="sig-paren">(</span><emclass="sig-param">message</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.announce_all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.announce_all"title="Permalink to this definition">¶</a></dt>
<dd><p>Send message to all connected sessions</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>message</strong> (<em>str</em>) – Message to send.</p>
<codeclass="sig-name descname">call_inputfuncs</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.call_inputfuncs"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.call_inputfuncs"title="Permalink to this definition">¶</a></dt>
<dd><p>Split incoming data into its inputfunc counterparts.
This should be called by the serversession.data_in
as sessionhandler.call_inputfunc(self, <ahref="#id9"><spanclass="problematic"id="id10">**</span></a>kwargs).</p>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.data_in"title="Permalink to this definition">¶</a></dt>
<dd><p>We let the data take a “detour” to session.data_in
so the user can override and see it all in one place.
That method is responsible to in turn always call
this class’<cite>sessionhandler.call_inputfunc</cite> with the
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Sending data Server -> Portal</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – Session to relay to.</p></li>
<li><p><strong>text</strong> (<em>str</em><em>, </em><em>optional</em>) – text data to return</p></li>
</ul>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>The outdata will be scrubbed for sending across
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">reason=''</em>, <emclass="sig-param">sync_portal=True</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called from server side to remove session and inform portal
of this fact.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – The Session to disconnect.</p></li>
<li><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – A motivation for the disconnect.</p></li>
<li><p><strong>sync_portal</strong> (<em>bool</em><em>, </em><em>optional</em>) – Sync the disconnect to
<codeclass="sig-name descname">disconnect_all_sessions</code><spanclass="sig-paren">(</span><emclass="sig-param">reason='You have been disconnected.'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.disconnect_all_sessions"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect_all_sessions"title="Permalink to this definition">¶</a></dt>
<dd><p>Cleanly disconnect all of the connected sessions.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – The reason for the disconnection.</p>
<codeclass="sig-name descname">disconnect_duplicate_sessions</code><spanclass="sig-paren">(</span><emclass="sig-param">curr_session</em>, <emclass="sig-param">reason='Logged in from elsewhere. Disconnecting.'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.disconnect_duplicate_sessions"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect_duplicate_sessions"title="Permalink to this definition">¶</a></dt>
<dd><p>Disconnects any existing sessions with the same user.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>curr_session</strong> (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – Disconnect all Sessions matching this one.</p></li>
<li><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – A motivation for disconnecting.</p></li>
<codeclass="sig-name descname">get_inputfuncs</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.get_inputfuncs"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.get_inputfuncs"title="Permalink to this definition">¶</a></dt>
<dd><p>Get all registered inputfuncs (access function)</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>A dict of {key:inputfunc,…}</p>
<codeclass="sig-name descname">login</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">account</em>, <emclass="sig-param">force=False</em>, <emclass="sig-param">testmode=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.login"title="Permalink to this definition">¶</a></dt>
<dd><p>Log in the previously unloggedin session and the account we by
now should know is connected to it. After this point we assume
the session to be logged in one way or another.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – The Session to authenticate.</p></li>
<li><p><strong>account</strong> (<em>Account</em>) – The Account identified as associated with this Session.</p></li>
<li><p><strong>force</strong> (<em>bool</em>) – Login also if the session thinks it’s already logged in
(this can happen for auto-authenticating protocols)</p></li>
<li><p><strong>testmode</strong> (<em>bool</em><em>, </em><em>optional</em>) – This is used by unittesting for
faking login without any AMP being actually active.</p></li>
<codeclass="sig-name descname">portal_connect</code><spanclass="sig-paren">(</span><emclass="sig-param">portalsessiondata</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_connect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_connect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by Portal when a new session has connected.
Creates a new, unlogged-in game session.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>portalsessiondata</strong> (<em>dict</em>) – a dictionary of all property:value
keys defining the session and which is marked to be
<codeclass="sig-name descname">portal_disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called from Portal when Portal session closed from the portal
side. There is no message to report in this case.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>session</strong> (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – The Session to disconnect</p>
<codeclass="sig-name descname">portal_disconnect_all</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_disconnect_all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_disconnect_all"title="Permalink to this definition">¶</a></dt>
<dd><p>Called from Portal when Portal is closing down. All
Sessions should die. The Portal should not be informed.</p>
<codeclass="sig-name descname">portal_reset_server</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_reset_server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_reset_server"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server when reloading. We tell the portal to start a new server instance.</p>
<codeclass="sig-name descname">portal_restart_server</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_restart_server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_restart_server"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server when reloading. We tell the portal to start a new server instance.</p>
<codeclass="sig-name descname">portal_session_sync</code><spanclass="sig-paren">(</span><emclass="sig-param">portalsessiondata</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_session_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_session_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by Portal when it wants to update a single session (e.g.
because of all negotiation protocols have finally replied)</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>portalsessiondata</strong> (<em>dict</em>) – a dictionary of all property:value
keys defining the session and which is marked to be
<codeclass="sig-name descname">portal_sessions_sync</code><spanclass="sig-paren">(</span><emclass="sig-param">portalsessionsdata</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_sessions_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_sessions_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>Syncing all session ids of the portal with the ones of the
server. This is instantiated by the portal when reconnecting.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>portalsessionsdata</strong> (<em>dict</em>) – A dictionary
<cite>{sessid: {property:value},…}</cite> defining each session and
<codeclass="sig-name descname">portal_shutdown</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_shutdown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_shutdown"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server when it’s time to shut down (the portal will shut us down and then shut
<codeclass="sig-name descname">session_from_account</code><spanclass="sig-paren">(</span><emclass="sig-param">account</em>, <emclass="sig-param">sessid</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_from_account"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.session_from_account"title="Permalink to this definition">¶</a></dt>
<dd><p>Given an account and a session id, return the actual session
object.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>account</strong> (<em>Account</em>) – The Account to get the Session from.</p></li>
<li><p><strong>sessid</strong> (<em>int</em><em> or </em><em>list</em>) – Session id(s).</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>Session(s) found.</p>
</dd>
<dtclass="field-odd">Return type</dt>
<ddclass="field-odd"><p>sessions (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session">Session</a> or list)</p>
<codeclass="sig-name descname">session_from_sessid</code><spanclass="sig-paren">(</span><emclass="sig-param">sessid</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_from_sessid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.session_from_sessid"title="Permalink to this definition">¶</a></dt>
<dd><p>Get session based on sessid, or None if not found</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>sessid</strong> (<em>int</em><em> or </em><em>list</em>) – Session id(s).</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><dlclass="simple">
<dt>Session(s) found. This</dt><dd><p>is a list if input was a list.</p>
</dd>
</dl>
</p>
</dd>
<dtclass="field-odd">Return type</dt>
<ddclass="field-odd"><p>sessions (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session">Session</a> or list)</p>
<codeclass="sig-name descname">session_portal_partial_sync</code><spanclass="sig-paren">(</span><emclass="sig-param">session_data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_portal_partial_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.session_portal_partial_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>Call to make a partial update of the session, such as only a particular property.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>session_data</strong> (<em>dict</em>) – Store <cite>{sessid: {property:value}, …}</cite> defining one or
<codeclass="sig-name descname">session_portal_sync</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_portal_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.session_portal_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by the server when it wants to sync a single session
with the Portal for whatever reason. Returns a deferred!</p>
<codeclass="sig-name descname">sessions_from_account</code><spanclass="sig-paren">(</span><emclass="sig-param">account</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.sessions_from_account"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_account"title="Permalink to this definition">¶</a></dt>
<dd><p>Given an account, return all matching sessions.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>account</strong> (<em>Account</em>) – Account to get sessions from.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>All Sessions associated with this account.</p>
<codeclass="sig-name descname">sessions_from_character</code><spanclass="sig-paren">(</span><emclass="sig-param">puppet</em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_character"title="Permalink to this definition">¶</a></dt>
<dd><p>Given a puppeted object, return all controlling sessions.</p>
<codeclass="sig-name descname">sessions_from_csessid</code><spanclass="sig-paren">(</span><emclass="sig-param">csessid</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.sessions_from_csessid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_csessid"title="Permalink to this definition">¶</a></dt>
<dd><p>Given a client identification hash (for session types that offer them)
return all sessions with a matching hash.</p>
<dlclass="simple">
<dt>Args</dt><dd><p>csessid (str): The session hash.</p>
</dd>
</dl>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>The sessions with matching .csessid, if any.</p>
<codeclass="sig-name descname">sessions_from_puppet</code><spanclass="sig-paren">(</span><emclass="sig-param">puppet</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.sessions_from_puppet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_puppet"title="Permalink to this definition">¶</a></dt>
<dd><p>Given a puppeted object, return all controlling sessions.</p>
<codeclass="sig-name descname">start_bot_session</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol_path</em>, <emclass="sig-param">configdict</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.start_bot_session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.start_bot_session"title="Permalink to this definition">¶</a></dt>
<dd><p>This method allows the server-side to force the Portal to
create a new bot session.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>protocol_path</strong> (<em>str</em>) – The full python path to the bot’s
class.</p></li>
<li><p><strong>configdict</strong> (<em>dict</em>) – This dict will be used to configure
the bot (this depends on the bot protocol).</p></li>
<codeclass="sig-name descname">validate_sessions</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.validate_sessions"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.validate_sessions"title="Permalink to this definition">¶</a></dt>
<dd><p>Check all currently connected sessions (logged in and not) and
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.sessionhandler.</code><codeclass="sig-name descname">SessionHandler</code><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#SessionHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.SessionHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">clean_senddata</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#SessionHandler.clean_senddata"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.SessionHandler.clean_senddata"title="Permalink to this definition">¶</a></dt>
<dd><p>Clean up data for sending across the AMP wire. Also apply INLINEFUNCS.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<aclass="reference internal"href="#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – The relevant session instance.</p></li>
<li><p><strong>kwargs</strong> (<em>dict</em>) –<p>send-instruction, with the keyword itself being the name
of the instruction (like “text”). Suitable values for each
<codeclass="sig-name descname">get</code><spanclass="sig-paren">(</span><emclass="sig-param">key</em>, <emclass="sig-param">default=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#SessionHandler.get"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.SessionHandler.get"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get_all_sync_data</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#SessionHandler.get_all_sync_data"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.SessionHandler.get_all_sync_data"title="Permalink to this definition">¶</a></dt>
<dd><p>Create a dictionary of sessdata dicts representing all
<codeclass="sig-name descname">get_sessions</code><spanclass="sig-paren">(</span><emclass="sig-param">include_unloggedin=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#SessionHandler.get_sessions"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.SessionHandler.get_sessions"title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the connected session objects.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>include_unloggedin</strong> (<em>bool</em><em>, </em><em>optional</em>) – Also list Sessions
that have not yet authenticated.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>A list of <cite>Session</cite> objects.</p>
<codeclass="sig-prename descclassname">evennia.server.sessionhandler.</code><codeclass="sig-name descname">_SESSION_HANDLER_CLASS</code><aclass="headerlink"href="#evennia.server.sessionhandler._SESSION_HANDLER_CLASS"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="#evennia.server.sessionhandler.ServerSessionHandler"title="evennia.server.sessionhandler.ServerSessionHandler"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.server.sessionhandler.ServerSessionHandler</span></code></a></p>
<codeclass="sig-prename descclassname">evennia.server.sessionhandler.</code><codeclass="sig-name descname">delayed_import</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#delayed_import"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.delayed_import"title="Permalink to this definition">¶</a></dt>
<dd><p>Helper method for delayed import of all needed entities.</p>
<spanid="evennia-server-signals-module"></span><h2>evennia.server.signals module<aclass="headerlink"href="#module-evennia.server.signals"title="Permalink to this headline">¶</a></h2>
<p>This module brings Django Signals into Evennia. These are events that
can be subscribed to by importing a given Signal and using the
<spanid="evennia-server-throttle-module"></span><h2>evennia.server.throttle module<aclass="headerlink"href="#module-evennia.server.throttle"title="Permalink to this headline">¶</a></h2>
<dlclass="class">
<dtid="evennia.server.throttle.Throttle">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.throttle.</code><codeclass="sig-name descname">Throttle</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/throttle.html#Throttle"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.throttle.Throttle"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/throttle.html#Throttle.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.throttle.Throttle.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Allows setting of throttle parameters.</p>
<dl>
<dt>Kwargs:</dt><dd><p>limit (int): Max number of failures before imposing limiter
timeout (int): number of timeout seconds after</p>
<blockquote>
<div><p>max number of tries has been reached.</p>
</div></blockquote>
<dlclass="simple">
<dt>cache_size (int): Max number of attempts to record per IP within a</dt><dd><p>rolling window; this is NOT the same as the limit after which
the throttle is imposed!</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.throttle.Throttle.check">
<codeclass="sig-name descname">check</code><spanclass="sig-paren">(</span><emclass="sig-param">ip</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/throttle.html#Throttle.check"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.throttle.Throttle.check"title="Permalink to this definition">¶</a></dt>
<dd><p>This will check the session’s address against the
storage dictionary to check they haven’t spammed too many
fails recently.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>ip</strong> (<em>str</em>) – IP address of requestor</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><dlclass="simple">
<dt>True if throttling is active,</dt><dd><p>False otherwise.</p>
<codeclass="sig-name descname">error_msg</code><emclass="property"> = 'Too many failed attempts; you must wait a few minutes before trying again.'</em><aclass="headerlink"href="#evennia.server.throttle.Throttle.error_msg"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="method">
<dtid="evennia.server.throttle.Throttle.get">
<codeclass="sig-name descname">get</code><spanclass="sig-paren">(</span><emclass="sig-param">ip=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/throttle.html#Throttle.get"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.throttle.Throttle.get"title="Permalink to this definition">¶</a></dt>
<dd><p>Convenience function that returns the storage table, or part of.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>ip</strong> (<em>str</em><em>, </em><em>optional</em>) – IP address of requestor</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><dlclass="simple">
<dt>When no IP is provided, returns a dict of all</dt><dd><p>current IPs being tracked and the timestamps of their recent
failures.</p>
</dd>
<dt>timestamps (deque): When an IP is provided, returns a deque of</dt><dd><p>timestamps of recent failures only for that IP.</p>
</dd>
</dl>
</p>
</dd>
<dtclass="field-odd">Return type</dt>
<ddclass="field-odd"><p>storage (dict)</p>
</dd>
</dl>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.throttle.Throttle.update">
<codeclass="sig-name descname">update</code><spanclass="sig-paren">(</span><emclass="sig-param">ip</em>, <emclass="sig-param">failmsg='Exceeded threshold.'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/throttle.html#Throttle.update"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.throttle.Throttle.update"title="Permalink to this definition">¶</a></dt>
<dd><p>Store the time of the latest failure.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>ip</strong> (<em>str</em>) – IP address of requestor</p></li>
<li><p><strong>failmsg</strong> (<em>str</em><em>, </em><em>optional</em>) – Message to display in logs upon activation
<spanid="evennia-server-validators-module"></span><h2>evennia.server.validators module<aclass="headerlink"href="#module-evennia.server.validators"title="Permalink to this headline">¶</a></h2>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.validators.</code><codeclass="sig-name descname">EvenniaPasswordValidator</code><spanclass="sig-paren">(</span><emclass="sig-param">regex="^[\w. @+\-',]+$", policy="Password should contain a mix of letters, spaces, digits and @/./+/-/_/'/, only."</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/validators.html#EvenniaPasswordValidator"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.validators.EvenniaPasswordValidator"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">regex="^[\\w. @+\\-',]+$", policy="Password should contain a mix of letters, spaces, digits and @/./+/-/_/'/, only."</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/validators.html#EvenniaPasswordValidator.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.validators.EvenniaPasswordValidator.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Constructs a standard Django password validator.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>regex</strong> (<em>str</em>) – Regex pattern of valid characters to allow.</p></li>
<li><p><strong>policy</strong> (<em>str</em>) – Brief explanation of what the defined regex permits.</p></li>
<codeclass="sig-name descname">get_help_text</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/validators.html#EvenniaPasswordValidator.get_help_text"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.validators.EvenniaPasswordValidator.get_help_text"title="Permalink to this definition">¶</a></dt>
<dd><p>Returns a user-facing explanation of the password policy defined
by this validator.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>Explanation of password policy.</p>
<codeclass="sig-name descname">validate</code><spanclass="sig-paren">(</span><emclass="sig-param">password</em>, <emclass="sig-param">user=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/validators.html#EvenniaPasswordValidator.validate"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.validators.EvenniaPasswordValidator.validate"title="Permalink to this definition">¶</a></dt>
<dd><p>Validates a password string to make sure it meets predefined Evennia
acceptable character policy.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>password</strong> (<em>str</em>) – Password to validate</p></li>
<li><p><strong>user</strong> (<em>None</em>) – Unused argument but required by Django</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><dlclass="simple">
<dt>None if password successfully validated,</dt><dd><p>raises ValidationError otherwise.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.validators.</code><codeclass="sig-name descname">EvenniaUsernameAvailabilityValidator</code><aclass="reference internal"href="../_modules/evennia/server/validators.html#EvenniaUsernameAvailabilityValidator"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.validators.EvenniaUsernameAvailabilityValidator"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-server-webserver-module"></span><h2>evennia.server.webserver module<aclass="headerlink"href="#module-evennia.server.webserver"title="Permalink to this headline">¶</a></h2>
<p>This implements resources for Twisted webservers using the WSGI
interface of Django. This alleviates the need of running e.g. an
Apache server to serve Evennia’s web presence (although you could do
that too if desired).</p>
<p>The actual servers are started inside server.py as part of the Evennia
application.</p>
<p>(Lots of thanks to <aclass="reference external"href="http://github.com/clemesha/twisted-wsgi-django">http://github.com/clemesha/twisted-wsgi-django</a> for
a great example/aid on how to do this.)</p>
<dlclass="class">
<dtid="evennia.server.webserver.DjangoWebRoot">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.webserver.</code><codeclass="sig-name descname">DjangoWebRoot</code><spanclass="sig-paren">(</span><emclass="sig-param">pool</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#DjangoWebRoot"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.DjangoWebRoot"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">pool</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#DjangoWebRoot.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.DjangoWebRoot.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Setup the django+twisted resource.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>pool</strong> (<em>ThreadPool</em>) – The twisted threadpool.</p>
<codeclass="sig-name descname">_decrement_requests</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#DjangoWebRoot._decrement_requests"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.DjangoWebRoot._decrement_requests"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">empty_threadpool</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#DjangoWebRoot.empty_threadpool"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.DjangoWebRoot.empty_threadpool"title="Permalink to this definition">¶</a></dt>
<dd><p>Converts our _pending_requests list of deferreds into a DeferredList</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>Contains all deferreds of pending requests.</p>
<codeclass="sig-name descname">getChild</code><spanclass="sig-paren">(</span><emclass="sig-param">path</em>, <emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#DjangoWebRoot.getChild"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.DjangoWebRoot.getChild"title="Permalink to this definition">¶</a></dt>
<dd><p>To make things work we nudge the url tree to make this the
<codeclass="sig-name descname">getChild</code><spanclass="sig-paren">(</span><emclass="sig-param">path</em>, <emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#EvenniaReverseProxyResource.getChild"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.EvenniaReverseProxyResource.getChild"title="Permalink to this definition">¶</a></dt>
<dd><p>Create and return a proxy resource with the same proxy configuration
as this one, except that its path also contains the segment given by
<codeclass="sig-name descname">render</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#EvenniaReverseProxyResource.render"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.EvenniaReverseProxyResource.render"title="Permalink to this definition">¶</a></dt>
<dd><p>Render a request by forwarding it to the proxied server.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.webserver.</code><codeclass="sig-name descname">HTTPChannelWithXForwardedFor</code><aclass="reference internal"href="../_modules/evennia/server/webserver.html#HTTPChannelWithXForwardedFor"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.HTTPChannelWithXForwardedFor"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allHeadersReceived</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#HTTPChannelWithXForwardedFor.allHeadersReceived"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.HTTPChannelWithXForwardedFor.allHeadersReceived"title="Permalink to this definition">¶</a></dt>
<dd><p>Check to see if this is a reverse proxied connection.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.webserver.</code><codeclass="sig-name descname">LockableThreadPool</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#LockableThreadPool"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.LockableThreadPool"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#LockableThreadPool.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.LockableThreadPool.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Create a new threadpool.</p>
<p>@param minthreads: minimum number of threads in the pool
@type minthreads: L{int}</p>
<p>@param maxthreads: maximum number of threads in the pool
@type maxthreads: L{int}</p>
<p>@param name: The name to give this threadpool; visible in log messages.
<codeclass="sig-name descname">callInThread</code><spanclass="sig-paren">(</span><emclass="sig-param">func</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#LockableThreadPool.callInThread"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.LockableThreadPool.callInThread"title="Permalink to this definition">¶</a></dt>
<dd><p>called in the main reactor thread. Makes sure the pool
<codeclass="sig-name descname">lock</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#LockableThreadPool.lock"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.LockableThreadPool.lock"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">directoryListing</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#PrivateStaticRoot.directoryListing"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.PrivateStaticRoot.directoryListing"title="Permalink to this definition">¶</a></dt>
<dd><p>Return a resource that generates an HTML listing of the
directory this path represents.</p>
<p>@return: A resource that renders the directory to HTML.
@rtype: L{DirectoryLister}</p>
</dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.webserver.WSGIWebServer">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.webserver.</code><codeclass="sig-name descname">WSGIWebServer</code><spanclass="sig-paren">(</span><emclass="sig-param">pool</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#WSGIWebServer"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.WSGIWebServer"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">pool</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#WSGIWebServer.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.WSGIWebServer.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>This just stores the threadpool.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>pool</strong> (<em>ThreadPool</em>) – The twisted threadpool.</p></li>
<li><p><strong>kwargs</strong> (<em>args</em><em>,</em>) – Passed on to the TCPServer.</p></li>
<codeclass="sig-name descname">startService</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#WSGIWebServer.startService"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.WSGIWebServer.startService"title="Permalink to this definition">¶</a></dt>
<dd><p>Start the pool after the service starts.</p>
<codeclass="sig-name descname">stopService</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#WSGIWebServer.stopService"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.WSGIWebServer.stopService"title="Permalink to this definition">¶</a></dt>
<dd><p>Safely stop the pool after the service stops.</p>
</dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.webserver.Website">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.webserver.</code><codeclass="sig-name descname">Website</code><spanclass="sig-paren">(</span><emclass="sig-param">resource</em>, <emclass="sig-param">requestFactory=None</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#Website"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.Website"title="Permalink to this definition">¶</a></dt>
<p>This class will only log http requests if settings.DEBUG is True.</p>
<dlclass="method">
<dtid="evennia.server.webserver.Website.log">
<codeclass="sig-name descname">log</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#Website.log"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.Website.log"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/webserver.html#Website.logPrefix"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.Website.logPrefix"title="Permalink to this definition">¶</a></dt>
<dd><p>How to be named in logs</p>
</dd></dl>
<dlclass="attribute">
<dtid="evennia.server.webserver.Website.noisy">
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.webserver.Website.noisy"title="Permalink to this definition">¶</a></dt>