evennia/docs/6.x/api/evennia.server.serversession.html
2026-02-15 19:06:04 +01:00

592 lines
No EOL
46 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.serversession &#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.service" href="evennia.server.service.html" />
<link rel="prev" title="evennia.server.server" href="evennia.server.server.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.service.html" title="evennia.server.service"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.server.server.html" title="evennia.server.server"
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.serversession</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.server.serversession">
<span id="evennia-server-serversession"></span><h1>evennia.server.serversession<a class="headerlink" href="#module-evennia.server.serversession" title="Link to this heading"></a></h1>
<p>This defines a the Servers generic session object. This object represents
a connection to the outside world but dont know any details about how the
connection actually happens (so its the same for telnet, web, ssh etc).</p>
<p>It is stored on the Server side (as opposed to protocol-specific sessions which
are stored on the Portal side)</p>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession">
<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.serversession.</span></span><span class="sig-name descname"><span class="pre">ServerSession</span></span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><code class="xref py py-class docutils literal notranslate"><span class="pre">Session</span></code></a></p>
<p>This class represents an accounts session and is a template for
individual protocols to communicate with Evennia.</p>
<p>Each account gets a session assigned to them whenever they connect
to the game server. All communication between game and account goes
through their session.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.cmdset_provider_order">
<span class="sig-name descname"><span class="pre">cmdset_provider_order</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.serversession.ServerSession.cmdset_provider_order" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.cmdset_provider_error_order">
<span class="sig-name descname"><span class="pre">cmdset_provider_error_order</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">50</span></em><a class="headerlink" href="#evennia.server.serversession.ServerSession.cmdset_provider_error_order" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.cmdset_provider_type">
<span class="sig-name descname"><span class="pre">cmdset_provider_type</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'session'</span></em><a class="headerlink" href="#evennia.server.serversession.ServerSession.cmdset_provider_type" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.__init__" title="Link to this definition"></a></dt>
<dd><p>Initiate to avoid AttributeErrors down the line</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.cmdset_storage">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">cmdset_storage</span></span><a class="headerlink" href="#evennia.server.serversession.ServerSession.cmdset_storage" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.get_cmdset_providers">
<span class="sig-name descname"><span class="pre">get_cmdset_providers</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">CmdSetProvider</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.get_cmdset_providers"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.get_cmdset_providers" title="Link to this definition"></a></dt>
<dd><p>Overrideable method which returns a dictionary of every kind of object which
has a cmdsethandler linked to this ServerSession, and should participate in cmdset
merging.</p>
<dl class="simple">
<dt>In all normal cases, thats the Session itself, and possibly an account and puppeted</dt><dd><p>object.</p>
</dd>
</dl>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>dict[str, CmdSetProvider]</em> The CmdSetProviders linked to this Object.</p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.id">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#evennia.server.serversession.ServerSession.id" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.at_sync">
<span class="sig-name descname"><span class="pre">at_sync</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.at_sync"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.at_sync" title="Link 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
set up the session as it was.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.at_login">
<span class="sig-name descname"><span class="pre">at_login</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/serversession.html#ServerSession.at_login"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.at_login" title="Link to this definition"></a></dt>
<dd><p>Hook called by sessionhandler when the session becomes authenticated.</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>) The account associated with the session.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.at_disconnect">
<span class="sig-name descname"><span class="pre">at_disconnect</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">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.at_disconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.at_disconnect" title="Link to this definition"></a></dt>
<dd><p>Hook called by sessionhandler when disconnecting this session.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.get_account">
<span class="sig-name descname"><span class="pre">get_account</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.get_account"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.get_account" title="Link to this definition"></a></dt>
<dd><p>Get the account associated with this session</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>account (Account or None)</em> The associated Account.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.get_puppet">
<span class="sig-name descname"><span class="pre">get_puppet</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.get_puppet"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.get_puppet" title="Link to this definition"></a></dt>
<dd><p>Get the in-game character associated with this session.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>puppet (Object or None)</em> The puppeted object, if any.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.get_character">
<span class="sig-name descname"><span class="pre">get_character</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.server.serversession.ServerSession.get_character" title="Link to this definition"></a></dt>
<dd><p>Get the in-game character associated with this session.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>puppet (Object or None)</em> The puppeted object, if any.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.get_puppet_or_account">
<span class="sig-name descname"><span class="pre">get_puppet_or_account</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.get_puppet_or_account"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.get_puppet_or_account" title="Link to this definition"></a></dt>
<dd><p>Get puppet or account.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><p><em>controller (Object or Account)</em> </p>
<dl class="simple">
<dt>The puppet if one exists,</dt><dd><p>otherwise return the account.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.log">
<span class="sig-name descname"><span class="pre">log</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel</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/serversession.html#ServerSession.log"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.log" title="Link to this definition"></a></dt>
<dd><p>Emits session info to the appropriate outputs and info channels.</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>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
in addition to the server log.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.get_client_size">
<span class="sig-name descname"><span class="pre">get_client_size</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.get_client_size"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.get_client_size" title="Link 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>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.update_session_counters">
<span class="sig-name descname"><span class="pre">update_session_counters</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">idle</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/serversession.html#ServerSession.update_session_counters"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.update_session_counters" title="Link 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>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.update_flags">
<span class="sig-name descname"><span class="pre">update_flags</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">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.update_flags"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.update_flags" title="Link to this definition"></a></dt>
<dd><p>Update the protocol_flags and sync them with Portal.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>protocol_flag</strong> (<em>any</em>) A key and value to set in the
protocol_flags dictionary.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Since protocols can vary, no checking is done
as to the existence of the flag or not. The input
data should have been validated before this call.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.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="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/serversession.html#ServerSession.data_out"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.data_out" title="Link to this definition"></a></dt>
<dd><p>Sending data from Evennia-&gt;Client</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>str</em><em> or </em><em>tuple</em>)</p></li>
<li><p><strong>any</strong> (<em>str</em><em> or </em><em>tuple</em>) Send-commands identified
by their keys. Or “options”, carrying options
for the protocol(s).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.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="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/serversession.html#ServerSession.data_in"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.data_in" title="Link to this definition"></a></dt>
<dd><p>Receiving data from the client, sending it off to
the respective inputfuncs.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>kwargs</strong> (<em>any</em>) Incoming data from protocol on
the form <strong>{“commandname”: ((args), {kwargs}),…}</strong></p>
</dd>
</dl>
<p class="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 <strong>self.sessionhandler.call_inputfuncs(self, **kwargs)</strong>.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.msg">
<span class="sig-name descname"><span class="pre">msg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</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/serversession.html#ServerSession.msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.msg" title="Link to this definition"></a></dt>
<dd><p>Wrapper to mimic msg() functionality of Objects and Accounts.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>text</strong> (<em>str</em>) String input.</p>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>any</strong> (<em>str</em><em> or </em><em>tuple</em>) Send-commands identified
by their keys. Or “options”, carrying options
for the protocol(s).</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.execute_cmd">
<span class="sig-name descname"><span class="pre">execute_cmd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_string</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">session</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</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/serversession.html#ServerSession.execute_cmd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.execute_cmd" title="Link 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>
<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>raw_string</strong> (<em>string</em>) Raw command input</p></li>
<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>) 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>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>command</strong> (<em>Other keyword arguments will be added to the found</em>)</p></li>
<li><p><strong>is</strong> (<em>object instace as variables before it executes. This</em>)</p></li>
<li><p><strong>and</strong> (<em>unused by default Evennia but may be used to set flags</em>)</p></li>
<li><p><strong>run-time.</strong> (<em>change operating paramaters for commands at</em>)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.at_cmdset_get">
<span class="sig-name descname"><span class="pre">at_cmdset_get</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">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.at_cmdset_get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.at_cmdset_get" title="Link to this definition"></a></dt>
<dd><p>Called just before cmdsets on this object are requested by the
command handler. If changes need to be done on the fly to the
cmdset before passing them on to the cmdhandler, this is the
place to do it. This is called also if the object currently
have no cmdsets.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>caller</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) The object requesting the cmdsets.</p></li>
<li><p><strong>current</strong> (<a class="reference internal" href="evennia.commands.cmdhandler.html#evennia.commands.cmdhandler.CmdSet" title="evennia.commands.cmdhandler.CmdSet"><em>CmdSet</em></a>) The current merged cmdset.</p></li>
<li><p><strong>force_init</strong> (<em>bool</em>) If <strong>True</strong>, force a re-build of the cmdset. (seems unused)</p></li>
<li><p><strong>**kwargs</strong> Arbitrary input for overloads.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.get_cmdsets">
<span class="sig-name descname"><span class="pre">get_cmdsets</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">current</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/serversession.html#ServerSession.get_cmdsets"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.get_cmdsets" title="Link to this definition"></a></dt>
<dd><p>Called by the CommandHandler to get a list of cmdsets to merge.</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>caller</strong> (<em>obj</em>) The object requesting the cmdsets.</p></li>
<li><p><strong>current</strong> (<em>cmdset</em>) The current merged cmdset.</p></li>
<li><p><strong>**kwargs</strong> Arbitrary input for overloads.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>tuple</em> A tuple of (current, cmdsets), which is probably self.cmdset.current and self.cmdset.cmdset_stack</p>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.nattributes">
<span class="sig-name descname"><span class="pre">nattributes</span></span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.nattributes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.nattributes" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.attributes">
<span class="sig-name descname"><span class="pre">attributes</span></span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.attributes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.attributes" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.ndb_get">
<span class="sig-name descname"><span class="pre">ndb_get</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.ndb_get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.ndb_get" title="Link 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
property, e.g. obj.ndb.attr = value etc.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.ndb_set">
<span class="sig-name descname"><span class="pre">ndb_set</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.ndb_set"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.ndb_set" title="Link to this definition"></a></dt>
<dd><p>Stop accidentally replacing the db object</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>value</strong> (<em>any</em>) A value to store in the ndb.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.ndb_del">
<span class="sig-name descname"><span class="pre">ndb_del</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/serversession.html#ServerSession.ndb_del"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.ndb_del" title="Link to this definition"></a></dt>
<dd><p>Stop accidental deletion.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.ndb">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ndb</span></span><a class="headerlink" href="#evennia.server.serversession.ServerSession.ndb" title="Link 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>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>A non-persistent store (ndb</p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.db">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">db</span></span><a class="headerlink" href="#evennia.server.serversession.ServerSession.db" title="Link 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>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>A non-persistent store (ndb</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.access">
<span class="sig-name descname"><span class="pre">access</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/serversession.html#ServerSession.access"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.access" title="Link to this definition"></a></dt>
<dd><p>Dummy method to mimic the logged-in API.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.serversession.ServerSession.get_display_name">
<span class="sig-name descname"><span class="pre">get_display_name</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/serversession.html#ServerSession.get_display_name"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.serversession.ServerSession.get_display_name" title="Link to this definition"></a></dt>
<dd></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.serversession</a><ul>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession"><code class="docutils literal notranslate"><span class="pre">ServerSession</span></code></a><ul>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.cmdset_provider_order"><code class="docutils literal notranslate"><span class="pre">ServerSession.cmdset_provider_order</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.cmdset_provider_error_order"><code class="docutils literal notranslate"><span class="pre">ServerSession.cmdset_provider_error_order</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.cmdset_provider_type"><code class="docutils literal notranslate"><span class="pre">ServerSession.cmdset_provider_type</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.__init__"><code class="docutils literal notranslate"><span class="pre">ServerSession.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.cmdset_storage"><code class="docutils literal notranslate"><span class="pre">ServerSession.cmdset_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.get_cmdset_providers"><code class="docutils literal notranslate"><span class="pre">ServerSession.get_cmdset_providers()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.id"><code class="docutils literal notranslate"><span class="pre">ServerSession.id</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.at_sync"><code class="docutils literal notranslate"><span class="pre">ServerSession.at_sync()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.at_login"><code class="docutils literal notranslate"><span class="pre">ServerSession.at_login()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.at_disconnect"><code class="docutils literal notranslate"><span class="pre">ServerSession.at_disconnect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.get_account"><code class="docutils literal notranslate"><span class="pre">ServerSession.get_account()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.get_puppet"><code class="docutils literal notranslate"><span class="pre">ServerSession.get_puppet()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.get_character"><code class="docutils literal notranslate"><span class="pre">ServerSession.get_character()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.get_puppet_or_account"><code class="docutils literal notranslate"><span class="pre">ServerSession.get_puppet_or_account()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.log"><code class="docutils literal notranslate"><span class="pre">ServerSession.log()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.get_client_size"><code class="docutils literal notranslate"><span class="pre">ServerSession.get_client_size()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.update_session_counters"><code class="docutils literal notranslate"><span class="pre">ServerSession.update_session_counters()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.update_flags"><code class="docutils literal notranslate"><span class="pre">ServerSession.update_flags()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.data_out"><code class="docutils literal notranslate"><span class="pre">ServerSession.data_out()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.data_in"><code class="docutils literal notranslate"><span class="pre">ServerSession.data_in()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.msg"><code class="docutils literal notranslate"><span class="pre">ServerSession.msg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.execute_cmd"><code class="docutils literal notranslate"><span class="pre">ServerSession.execute_cmd()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.at_cmdset_get"><code class="docutils literal notranslate"><span class="pre">ServerSession.at_cmdset_get()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.get_cmdsets"><code class="docutils literal notranslate"><span class="pre">ServerSession.get_cmdsets()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.nattributes"><code class="docutils literal notranslate"><span class="pre">ServerSession.nattributes</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.attributes"><code class="docutils literal notranslate"><span class="pre">ServerSession.attributes</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.ndb_get"><code class="docutils literal notranslate"><span class="pre">ServerSession.ndb_get()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.ndb_set"><code class="docutils literal notranslate"><span class="pre">ServerSession.ndb_set()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.ndb_del"><code class="docutils literal notranslate"><span class="pre">ServerSession.ndb_del()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.ndb"><code class="docutils literal notranslate"><span class="pre">ServerSession.ndb</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.db"><code class="docutils literal notranslate"><span class="pre">ServerSession.db</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.access"><code class="docutils literal notranslate"><span class="pre">ServerSession.access()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.serversession.ServerSession.get_display_name"><code class="docutils literal notranslate"><span class="pre">ServerSession.get_display_name()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.server.server.html"
title="previous chapter">evennia.server.server</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.server.service.html"
title="next chapter">evennia.server.service</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.serversession.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/6.x/index.html">v6.0.0 branch (outdated)</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.service.html" title="evennia.server.service"
>next</a> |</li>
<li class="right" >
<a href="evennia.server.server.html" title="evennia.server.server"
>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.serversession</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>