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

741 lines
No EOL
61 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.server.sessionhandler &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.server.signals" href="evennia.server.signals.html" />
<link rel="prev" title="evennia.server.session" href="evennia.server.session.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.server.signals.html" title="evennia.server.signals"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.server.session.html" title="evennia.server.session"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.server.html" accesskey="U">evennia.server</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.sessionhandler</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.server.sessionhandler">
<span id="evennia-server-sessionhandler"></span><h1>evennia.server.sessionhandler<a class="headerlink" href="#module-evennia.server.sessionhandler" title="Link to this heading"></a></h1>
<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>
<ul class="simple">
<li><dl class="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><dl class="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>
</dd>
</dl>
</li>
</ul>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.DummySession">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.server.sessionhandler.</span></span><span class="sig-name descname"><span class="pre">DummySession</span></span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#DummySession"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.DummySession" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.DummySession.sessid">
<span class="sig-name descname"><span class="pre">sessid</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#evennia.server.sessionhandler.DummySession.sessid" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.delayed_import">
<span class="sig-prename descclassname"><span class="pre">evennia.server.sessionhandler.</span></span><span class="sig-name descname"><span class="pre">delayed_import</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#delayed_import"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.delayed_import" title="Link to this definition"></a></dt>
<dd><p>Helper method for delayed import of all needed entities.</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.SessionHandler">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.server.sessionhandler.</span></span><span class="sig-name descname"><span class="pre">SessionHandler</span></span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#SessionHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.SessionHandler" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
<p>This handler holds a stack of sessions.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.SessionHandler.get">
<span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#SessionHandler.get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.SessionHandler.get" title="Link to this definition"></a></dt>
<dd><p>Clean out None-sessions automatically.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.SessionHandler.get_sessions">
<span class="sig-name descname"><span class="pre">get_sessions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">include_unloggedin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#SessionHandler.get_sessions"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.SessionHandler.get_sessions" title="Link to this definition"></a></dt>
<dd><p>Returns the connected session objects.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="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>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>sessions (list)</em> A list of <strong>Session</strong> objects.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.SessionHandler.get_all_sync_data">
<span class="sig-name descname"><span class="pre">get_all_sync_data</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#SessionHandler.get_all_sync_data"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.SessionHandler.get_all_sync_data" title="Link to this definition"></a></dt>
<dd><p>Create a dictionary of sessdata dicts representing all
sessions in store.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>syncdata (dict)</em> A dict of sync data.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.SessionHandler.clean_senddata">
<span class="sig-name descname"><span class="pre">clean_senddata</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#SessionHandler.clean_senddata"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.SessionHandler.clean_senddata" title="Link to this definition"></a></dt>
<dd><p>Clean up data for sending across the AMP wire. Also apply the
FuncParser using callables from <strong>settings.FUNCPARSER_OUTGOING_MESSAGES_MODULES</strong>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) The relevant session instance.</p></li>
<li><p><strong>kwargs</strong> (<em>dict</em>) the name of the instruction (like “text”). Suitable values for each keyword are:
- arg -&gt; [[arg], {}]
- [args] -&gt; [[args], {}]
- {kwargs} -&gt; [[], {kwargs}]
- [args, {kwargs}] -&gt; [[arg], {kwargs}]
- [[args], {kwargs}] -&gt; [[args], {kwargs}]</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>kwargs (dict)</em> A cleaned dictionary of cmdname:[[args],{kwargs}] pairs,
where the keys, args and kwargs have all been converted to
send-safe entities (strings or numbers), and funcparser parsing has been
applied.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.server.sessionhandler.</span></span><span class="sig-name descname"><span class="pre">ServerSessionHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.server.sessionhandler.SessionHandler" title="evennia.server.sessionhandler.SessionHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">SessionHandler</span></code></a></p>
<p>This object holds the stack of sessions active in the game at any time.</p>
<p>A session register with the handler in two steps, first by registering itself with the connect()
method. This indicates an non-authenticated session. Whenever the session is authenticated the
session together with the related account is sent to the login() method.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.__init__" title="Link to this definition"></a></dt>
<dd><p>Init the handler.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.portal_connect">
<span class="sig-name descname"><span class="pre">portal_connect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">portalsessiondata</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_connect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_connect" title="Link to this definition"></a></dt>
<dd><p>Called by Portal when a new session has connected.
Creates a new, unlogged-in game session.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="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
synced.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.portal_session_sync">
<span class="sig-name descname"><span class="pre">portal_session_sync</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">portalsessiondata</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_session_sync"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_session_sync" title="Link 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>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="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
synced.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.portal_sessions_sync">
<span class="sig-name descname"><span class="pre">portal_sessions_sync</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">portalsessionsdata</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_sessions_sync"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_sessions_sync" title="Link 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>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>portalsessionsdata</strong> (<em>dict</em>) A dictionary
<strong>{sessid: {property:value},…}</strong> defining each session and
the properties in it which should be synced.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.portal_disconnect">
<span class="sig-name descname"><span class="pre">portal_disconnect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_disconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_disconnect" title="Link 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>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) The Session to disconnect</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.portal_disconnect_all">
<span class="sig-name descname"><span class="pre">portal_disconnect_all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_disconnect_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_disconnect_all" title="Link 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>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.start_bot_session">
<span class="sig-name descname"><span class="pre">start_bot_session</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">protocol_path</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">configdict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.start_bot_session"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.start_bot_session" title="Link to this definition"></a></dt>
<dd><p>This method allows the server-side to force the Portal to
create a new bot session.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>protocol_path</strong> (<em>str</em>) The full python path to the bots
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>
</ul>
</dd>
</dl>
<p class="rubric">Examples</p>
<dl class="simple">
<dt>start_bot_session(“evennia.server.portal.irc.IRCClient”,</dt><dd><dl class="simple">
<dt>{“uid”:1, “botname”:”evbot”, “channel”:”#evennia”,</dt><dd><p>“network:”irc.freenode.net”, “port”: 6667})</p>
</dd>
</dl>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The new session will use the supplied account-bot uid to
initiate an already logged-in connection. The Portal will
treat this as a normal connection and henceforth so will
the Server.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.portal_restart_server">
<span class="sig-name descname"><span class="pre">portal_restart_server</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_restart_server"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_restart_server" title="Link to this definition"></a></dt>
<dd><p>Called by server when reloading. We tell the portal to start a new server instance.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.portal_reset_server">
<span class="sig-name descname"><span class="pre">portal_reset_server</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_reset_server"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_reset_server" title="Link to this definition"></a></dt>
<dd><p>Called by server when reloading. We tell the portal to start a new server instance.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.portal_shutdown">
<span class="sig-name descname"><span class="pre">portal_shutdown</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_shutdown"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_shutdown" title="Link to this definition"></a></dt>
<dd><p>Called by server when its time to shut down (the portal will shut us down and then shut
itself down)</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.login">
<span class="sig-name descname"><span class="pre">login</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">account</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">force</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">testmode</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.login"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.login" title="Link 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>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) 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 its 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>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.disconnect">
<span class="sig-name descname"><span class="pre">disconnect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reason</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sync_portal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.disconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect" title="Link to this definition"></a></dt>
<dd><p>Called from server side to remove session and inform portal
of this fact.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) 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
Portal side. This should be done unless this was
called by self.portal_disconnect().</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.all_sessions_portal_sync">
<span class="sig-name descname"><span class="pre">all_sessions_portal_sync</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.all_sessions_portal_sync"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.all_sessions_portal_sync" title="Link to this definition"></a></dt>
<dd><p>This is called by the server when it reboots. It syncs all session data
to the portal. Returns a deferred!</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.session_portal_sync">
<span class="sig-name descname"><span class="pre">session_portal_sync</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_portal_sync"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.session_portal_sync" title="Link 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>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.session_portal_partial_sync">
<span class="sig-name descname"><span class="pre">session_portal_partial_sync</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_portal_partial_sync"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.session_portal_partial_sync" title="Link to this definition"></a></dt>
<dd><p>Call to make a partial update of the session, such as only a particular property.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>session_data</strong> (<em>dict</em>) Store <strong>{sessid: {property:value}, …}</strong> defining one or
more sessions in detail.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.disconnect_all_sessions">
<span class="sig-name descname"><span class="pre">disconnect_all_sessions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">reason</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'You</span> <span class="pre">have</span> <span class="pre">been</span> <span class="pre">disconnected.'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.disconnect_all_sessions"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect_all_sessions" title="Link to this definition"></a></dt>
<dd><p>Cleanly disconnect all of the connected sessions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) The reason for the disconnection.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.disconnect_duplicate_sessions">
<span class="sig-name descname"><span class="pre">disconnect_duplicate_sessions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">curr_session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reason</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Logged</span> <span class="pre">in</span> <span class="pre">from</span> <span class="pre">elsewhere.</span> <span class="pre">Disconnecting.'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.disconnect_duplicate_sessions"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect_duplicate_sessions" title="Link to this definition"></a></dt>
<dd><p>Disconnects any existing sessions with the same user.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>curr_session</strong> (<a class="reference internal" href="evennia.server.session.html#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>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.validate_sessions">
<span class="sig-name descname"><span class="pre">validate_sessions</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.validate_sessions"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.validate_sessions" title="Link to this definition"></a></dt>
<dd><p>Check all currently connected sessions (logged in and not) and
see if any are dead or idle.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.account_count">
<span class="sig-name descname"><span class="pre">account_count</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.account_count"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.account_count" title="Link 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>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>naccount (int)</em> Number of connected accounts</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.all_connected_accounts">
<span class="sig-name descname"><span class="pre">all_connected_accounts</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.all_connected_accounts"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.all_connected_accounts" title="Link to this definition"></a></dt>
<dd><p>Get a unique list of connected and logged-in Accounts.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><p><em>accounts (list)</em> </p>
<dl class="simple">
<dt>All connected Accounts (which may be fewer than the</dt><dd><p>amount of Sessions due to multi-playing).</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.session_from_sessid">
<span class="sig-name descname"><span class="pre">session_from_sessid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sessid</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_from_sessid"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.session_from_sessid" title="Link to this definition"></a></dt>
<dd><p>Get session based on sessid, or None if not found</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>sessid</strong> (<em>int</em><em> or </em><em>list</em>) Session id(s).</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>sessions (Session or list)</em> </p>
<dl class="simple">
<dt>Session(s) found. This</dt><dd><p>is a list if input was a list.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.session_from_account">
<span class="sig-name descname"><span class="pre">session_from_account</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">account</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sessid</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_from_account"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.session_from_account" title="Link to this definition"></a></dt>
<dd><p>Given an account and a session id, return the actual session
object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>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>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>sessions (Session or list)</em> Session(s) found.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.sessions_from_account">
<span class="sig-name descname"><span class="pre">sessions_from_account</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">account</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.sessions_from_account"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_account" title="Link to this definition"></a></dt>
<dd><p>Given an account, return all matching sessions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>account</strong> (<em>Account</em>) Account to get sessions from.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>sessions (list)</em> All Sessions associated with this account.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.sessions_from_puppet">
<span class="sig-name descname"><span class="pre">sessions_from_puppet</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">puppet</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.sessions_from_puppet"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_puppet" title="Link to this definition"></a></dt>
<dd><p>Given a puppeted object, return all controlling sessions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>puppet</strong> (<em>Object</em>) Object puppeted</p>
</dd>
</dl>
<dl class="simple">
<dt>Returns.</dt><dd><dl class="simple">
<dt>sessions (Session or list): Can be more than one of Object is controlled by more than</dt><dd><p>one Session (MULTISESSION_MODE &gt; 1).</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.sessions_from_character">
<span class="sig-name descname"><span class="pre">sessions_from_character</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">puppet</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_character" title="Link to this definition"></a></dt>
<dd><p>Given a puppeted object, return all controlling sessions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>puppet</strong> (<em>Object</em>) Object puppeted</p>
</dd>
</dl>
<dl class="simple">
<dt>Returns.</dt><dd><dl class="simple">
<dt>sessions (Session or list): Can be more than one of Object is controlled by more than</dt><dd><p>one Session (MULTISESSION_MODE &gt; 1).</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.sessions_from_csessid">
<span class="sig-name descname"><span class="pre">sessions_from_csessid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">csessid</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.sessions_from_csessid"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_csessid" title="Link 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>
<dl class="simple">
<dt>Args</dt><dd><p>csessid (str): The session hash.</p>
</dd>
</dl>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>sessions (list)</em> The sessions with matching .csessid, if any.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.announce_all">
<span class="sig-name descname"><span class="pre">announce_all</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.announce_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.announce_all" title="Link to this definition"></a></dt>
<dd><p>Send message to all connected sessions</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>message</strong> (<em>str</em>) Message to send.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.data_out">
<span class="sig-name descname"><span class="pre">data_out</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.data_out"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.data_out" title="Link to this definition"></a></dt>
<dd><p>Sending data Server -&gt; Portal</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) 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>
<p class="rubric">Notes</p>
<p>The outdata will be scrubbed for sending across
the wire here.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.get_inputfuncs">
<span class="sig-name descname"><span class="pre">get_inputfuncs</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.get_inputfuncs"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.get_inputfuncs" title="Link to this definition"></a></dt>
<dd><p>Get all registered inputfuncs (access function)</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>inputfuncs (dict)</em> A dict of {key:inputfunc,…}</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.data_in">
<span class="sig-name descname"><span class="pre">data_in</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.data_in"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.data_in" title="Link 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 <strong>sessionhandler.call_inputfunc</strong> with the
(possibly processed) data.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.sessionhandler.ServerSessionHandler.call_inputfuncs">
<span class="sig-name descname"><span class="pre">call_inputfuncs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.call_inputfuncs"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.sessionhandler.ServerSessionHandler.call_inputfuncs" title="Link to this definition"></a></dt>
<dd><p>Split incoming data into its inputfunc counterparts. This should be
called by the <strong>serversession.data_in</strong> as
<strong>sessionhandler.call_inputfunc(self, **kwargs)</strong>.</p>
<p>We also intercept OOB communication here.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>sessions</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) Session.</p>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>any</strong> (<em>tuple</em>) Incoming data from protocol, each
on the form <strong>commandname=((args), {kwargs})</strong>.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.server.sessionhandler</a><ul>
<li><a class="reference internal" href="#evennia.server.sessionhandler.DummySession"><code class="docutils literal notranslate"><span class="pre">DummySession</span></code></a><ul>
<li><a class="reference internal" href="#evennia.server.sessionhandler.DummySession.sessid"><code class="docutils literal notranslate"><span class="pre">DummySession.sessid</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.delayed_import"><code class="docutils literal notranslate"><span class="pre">delayed_import()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.SessionHandler"><code class="docutils literal notranslate"><span class="pre">SessionHandler</span></code></a><ul>
<li><a class="reference internal" href="#evennia.server.sessionhandler.SessionHandler.get"><code class="docutils literal notranslate"><span class="pre">SessionHandler.get()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.SessionHandler.get_sessions"><code class="docutils literal notranslate"><span class="pre">SessionHandler.get_sessions()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.SessionHandler.get_all_sync_data"><code class="docutils literal notranslate"><span class="pre">SessionHandler.get_all_sync_data()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.SessionHandler.clean_senddata"><code class="docutils literal notranslate"><span class="pre">SessionHandler.clean_senddata()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler</span></code></a><ul>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.__init__"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_connect"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.portal_connect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_session_sync"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.portal_session_sync()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_sessions_sync"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.portal_sessions_sync()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_disconnect"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.portal_disconnect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_disconnect_all"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.portal_disconnect_all()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.start_bot_session"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.start_bot_session()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_restart_server"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.portal_restart_server()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_reset_server"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.portal_reset_server()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.portal_shutdown"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.portal_shutdown()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.login"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.login()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.disconnect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.all_sessions_portal_sync"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.all_sessions_portal_sync()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.session_portal_sync"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.session_portal_sync()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.session_portal_partial_sync"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.session_portal_partial_sync()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect_all_sessions"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.disconnect_all_sessions()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect_duplicate_sessions"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.disconnect_duplicate_sessions()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.validate_sessions"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.validate_sessions()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.account_count"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.account_count()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.all_connected_accounts"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.all_connected_accounts()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.session_from_sessid"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.session_from_sessid()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.session_from_account"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.session_from_account()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_account"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.sessions_from_account()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_puppet"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.sessions_from_puppet()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_character"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.sessions_from_character()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_csessid"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.sessions_from_csessid()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.announce_all"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.announce_all()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.data_out"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.data_out()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.get_inputfuncs"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.get_inputfuncs()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.data_in"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.data_in()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.sessionhandler.ServerSessionHandler.call_inputfuncs"><code class="docutils literal notranslate"><span class="pre">ServerSessionHandler.call_inputfuncs()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.server.session.html"
title="previous chapter">evennia.server.session</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.server.signals.html"
title="next chapter">evennia.server.signals</a></p>
</div>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.server.sessionhandler.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li>
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.server.signals.html" title="evennia.server.signals"
>next</a> |</li>
<li class="right" >
<a href="evennia.server.session.html" title="evennia.server.session"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.server.html" >evennia.server</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.sessionhandler</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>