PSF-LoginServer/net/psforever/objects/LivePlayerList$.html

25 lines
58 KiB
HTML
Raw Normal View History

<!DOCTYPE html ><html><head><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/><title>PSF-LoginServer - master - net.psforever.objects.LivePlayerList</title><meta content="PSF - LoginServer - master - net.psforever.objects.LivePlayerList" name="description"/><meta content="PSF LoginServer master net.psforever.objects.LivePlayerList" name="keywords"/><meta http-equiv="content-type" content="text/html; charset=UTF-8"/><link href="../../../lib/index.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../lib/template.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../lib/print.css" media="print" type="text/css" rel="stylesheet"/><link href="../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css"/><script type="text/javascript" src="../../../lib/jquery.min.js"></script><script type="text/javascript" src="../../../lib/index.js"></script><script type="text/javascript" src="../../../index.js"></script><script type="text/javascript" src="../../../lib/scheduler.js"></script><script type="text/javascript" src="../../../lib/template.js"></script><script type="text/javascript">/* this variable can be used by the JS to determine the path to the root document */
var toRoot = '../../../';</script></head><body><div id="search"><span id="doc-title">PSF-LoginServer - <span id="doc-version">master</span></span> <span class="close-results"><span class="left">&lt;</span> Back</span><div id="textfilter"><span class="input"><input autocapitalize="none" placeholder="Search" id="index-input" type="text" accesskey="/"/><i class="clear material-icons"></i><i id="search-icon" class="material-icons"></i></span></div></div><div id="search-results"><div id="search-progress"><div id="progress-fill"></div></div><div id="results-content"><div id="entity-results"></div><div id="member-results"></div></div></div><div id="content-scroll-container" style="-webkit-overflow-scrolling: touch;"><div id="content-container" style="-webkit-overflow-scrolling: touch;"><div id="subpackage-spacer"><div id="packages"><h1>Packages</h1><ul><li class="indented0 " name="_root_.root" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="_root_"></a><a id="root:_root_"></a> <span class="permalink"><a href="../../../index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../index.html" title=""><span class="name">root</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented1 " name="_root_.net" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="net"></a><a id="net:net"></a> <span class="permalink"><a href="../../../net/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../index.html" title=""><span class="name">net</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented2 " name="net.psforever" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="psforever"></a><a id="psforever:psforever"></a> <span class="permalink"><a href="../../../net/psforever/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../index.html" title=""><span class="name">psforever</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../index.html" name="net" id="net" class="extype">net</a></dd></dl></div></li><li class="indented3 " name="net.psforever.objects" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="objects"></a><a id="objects:objects"></a> <span class="permalink"><a href="../../../net/psforever/objects/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="index.html" title=""><span class="name">objects</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../index.html" name="net.psforever" id="net.psforever" class="extype">psforever</a></dd></dl></div></li><li class="indented4 " name="net.psforever.objects.avatar" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="avatar"></a><a id="avatar:avatar"></a> <span class="permalink"><a href="../../../net/psforever/objects/avatar/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="avatar/index.html" title=""><span class="name">avatar</span></a></span><div class="fullcomment"><dl class="
The mapping system is tightly coupled between the <code>Avatar</code> class and to an instance of <code>WorldSessionActor</code>.
<br>
Use:<br>
1) When a users logs in during <code>WorldSessionActor</code>, associate that user's session id and their character (avatar).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>LivePlayerList.Add(session, avatar)</code><br>
2) In between the previous two steps, a range of characters may be queried based on provided statistics.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>LivePlayerList.WorldPopulation(...)</code><br>
3) When the user leaves the game entirely, his character's entry is removed from the mapping.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>LivePlayerList.Remove(session)</code>
</p></div><dl class="attributes block"><dt>Source</dt><dd><a href="https://github.com/psforever/PSF-LoginServer/blob/master//home/runner/work/PSF-LoginServer/PSF-LoginServer/src/main/scala/net/psforever/objects/LivePlayerList.scala" target="_blank">LivePlayerList.scala</a></dd></dl><div class="toggleContainer"><div class="toggle block"><span>Linear Supertypes</span><div class="superTypes hiddenContent"><span name="scala.AnyRef" class="extype">AnyRef</span>, <span name="scala.Any" class="extype">Any</span></div></div></div></div><div id="mbrsel"><div class="toggle"></div><div id="memberfilter"><i class="material-icons arrow"></i><span class="input"><input placeholder="Filter all members" id="mbrsel-input" type="text" accesskey="/"/></span><i class="clear material-icons"></i></div><div id="filterby"><div id="order"><span class="filtertype">Ordering</span><ol><li class="alpha in"><span>Alphabetic</span></li><li class="inherit out"><span>By Inheritance</span></li></ol></div><div class="ancestors"><span class="filtertype">Inherited<br/></span><ol id="linearization"><li class="in" name="net.psforever.objects.LivePlayerList"><span>LivePlayerList</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li></ol></div><div class="ancestors"><span class="filtertype"></span><ol><li class="hideall out"><span>Hide All</span></li><li class="showall in"><span>Show All</span></li></ol></div><div id="visbl"><span class="filtertype">Visibility</span><ol><li class="public in"><span>Public</span></li><li class="protected out"><span>Protected</span></li></ol></div></div></div><div id="template"><div id="allMembers"><div class="values members"><h3>Value Members</h3><ol><li class="indented0 " name="scala.AnyRef#!=" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="!=(x$1:Any):Boolean"></a><a id="!=(Any):Boolean"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#!=(x$1:Any):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $bang$eq">!=</span><span class="params">(<span name="arg0">arg0: <span name="scala.Any" class="extype">Any</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef###" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="##:Int"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html###:Int" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $hash$hash">##</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#==" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="==(x$1:Any):Boolean"></a><a id="==(Any):Boolean"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#==(x$1:Any):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $eq$eq">==</span><span class="params">(<span name="arg0">arg0: <span name="scala.Any" class="extype">Any</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li c
Neither the player nor the session may exist in the current mappings if this is to work.
</p></div><dl class="paramcmts block"><dt class="param">sessionId</dt><dd class="cmt"><p>the session</p></dd><dt class="param">avatar</dt><dd class="cmt"><p>the character</p></dd><dt>returns</dt><dd class="cmt"><p><code>true</code>, if the session was association was made; <code>false</code>, otherwise</p></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.LivePlayerList#Remove" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Remove(sessionId:Long):Option[net.psforever.objects.avatar.Avatar]"></a><a id="Remove(Long):Option[Avatar]"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#Remove(sessionId:Long):Option[net.psforever.objects.avatar.Avatar]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">Remove</span><span class="params">(<span name="sessionId">sessionId: <span name="scala.Long" class="extype">Long</span></span>)</span><span class="result">: <span name="scala.Option" class="extype">Option</span>[<a href="avatar/Avatar.html" name="net.psforever.objects.avatar.Avatar" id="net.psforever.objects.avatar.Avatar" class="extype">Avatar</a>]</span></span><p class="shortcomment cmt">Remove all entries related to the given session identifier from the mappings.</p><div class="fullcomment"><div class="comment cmt"><p>Remove all entries related to the given session identifier from the mappings.
The character no longer counts as "online."
</p></div><dl class="paramcmts block"><dt class="param">sessionId</dt><dd class="cmt"><p>the session</p></dd><dt>returns</dt><dd class="cmt"><p>any character that was afffected by the mapping removal</p></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.LivePlayerList#Shutdown" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Shutdown:List[net.psforever.objects.avatar.Avatar]"></a><a id="Shutdown:List[Avatar]"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#Shutdown:List[net.psforever.objects.avatar.Avatar]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">Shutdown</span><span class="result">: <span name="scala.List" class="extype">List</span>[<a href="avatar/Avatar.html" name="net.psforever.objects.avatar.Avatar" id="net.psforever.objects.avatar.Avatar" class="extype">Avatar</a>]</span></span><p class="shortcomment cmt">Hastily remove all mappings and ids.</p><div class="fullcomment"><div class="comment cmt"><p>Hastily remove all mappings and ids.
</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>an unsorted list of the characters that were still online</p></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.LivePlayerList#Update" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="Update(sessionId:Long,avatar:net.psforever.objects.avatar.Avatar):Unit"></a><a id="Update(Long,Avatar):Unit"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#Update(sessionId:Long,avatar:net.psforever.objects.avatar.Avatar):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">Update</span><span class="params">(<span name="sessionId">sessionId: <span name="scala.Long" class="extype">Long</span></span>, <span name="avatar">avatar: <a href="avatar/Avatar.html" name="net.psforever.objects.avatar.Avatar" id="net.psforever.objects.avatar.Avatar" class="extype">Avatar</a></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span></li><li class="indented0 " name="net.psforever.objects.LivePlayerList#WorldPopulation" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="WorldPopulation(predicate:(Tuple2[_,net.psforever.objects.avatar.Avatar])=&gt;Boolean):List[net.psforever.objects.avatar.Avatar]"></a><a id="WorldPopulation((Tuple2[_,Avatar])=&gt;Boolean):List[Avatar]"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#WorldPopulation(predicate:(Tuple2[_,net.psforever.objects.avatar.Avatar])=&gt;Boolean):List[net.psforever.objects.avatar.Avatar]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">WorldPopulation</span><span class="params">(<span name="predicate">predicate: (<span name="scala.Tuple2" class="extype">Tuple2</span>[_, <a href="avatar/Avatar.html" name="net.psforever.objects.avatar.Avatar" id="net.psforever.objects.avatar.Avatar" class="extype">Avatar</a>]) =&gt; <span name="scala.Boolean" class="extype">Boolean</span></span>)</span><span class="result">: <span name="scala.List" class="extype">List</span>[<a href="avatar/Avatar.html" name="net.psforever.objects.avatar.Avatar" id="net.psforever.objects.avatar.Avatar" class="extype">Avatar</a>]</span></span><p class="shortcomment cmt">Given some criteria, examine the mapping of user characters and find the ones that fulfill the requirements.<br>
<br>
Note the signature carefully.</p><div class="fullcomment"><div class="comment cmt"><p>Given some criteria, examine the mapping of user characters and find the ones that fulfill the requirements.<br>
<br>
Note the signature carefully.
A two-element tuple is checked, but only the second element of that tuple - a <code>Player</code> - is eligible for being queried.
The first element is ignored.
Even a predicate as simple as <code>{ case ((x : Long, _)) =&gt; x &gt; 0 }</code> will not work for that reason.</p></div><dl class="paramcmts block"><dt class="param">predicate</dt><dd class="cmt"><p>the conditions for filtering the live <code>Player</code>s</p></dd><dt>returns</dt><dd class="cmt"><p>a list of users's <code>Player</code>s that fit the criteria</p></dd></dl></div></li><li class="indented0 " name="scala.Any#asInstanceOf" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="asInstanceOf[T0]:T0"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#asInstanceOf[T0]:T0" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">asInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span name="scala.Any.asInstanceOf.T0" class="extype">T0</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#clone" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="clone():Object"></a><a id="clone():AnyRef"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#clone():Object" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">clone</span><span class="params">()</span><span class="result">: <span name="scala.AnyRef" class="extype">AnyRef</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<span name="java.lang" class="extype">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.CloneNotSupportedException]</span></span>)</span> <span class="name">@native</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#eq" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="eq(x$1:AnyRef):Boolean"></a><a id="eq(AnyRef):Boolean"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#eq(x$1:AnyRef):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">eq</span><span class="params">(<span name="arg0">arg0: <span name="scala.AnyRef" class="extype">AnyRef</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#equals" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="equals(x$1:Object):Boolean"></a><a id="equals(AnyRef):Boolean"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#equals(x$1:Object):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">equals</span><span class="params">(<span name="arg0">arg0: <span name="scala.AnyRef" class="extype">AnyRef</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#finalize" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="finalize():Unit"></a> <span class="permalink"><a href="../../../net/psforever/objects/LivePlayerList$.html#finalize():Un