c

net.psforever.services.account

PersistenceMonitor

class PersistenceMonitor extends Actor

Observe and manage the persistence of a single named player avatar entity in the game world, with special care to the conditions of short interruption in connectivity (relogging) and end-of-life operations. Upon login, the monitor will echo all of the current information about the user's (recent) login back to the sender. With a zone and a coordinate position in that zone, a user's player avatar can be properly reconnected or can be reconstructed. Without actual recent activity, the default information about the zone is an indication that the user must start this player avatar from scratch. The monitor expects a reliable update messaging (heartbeat) to keep track of the important information and to determine the conditions for end-of-life activity.

Source
AccountPersistenceService.scala
Linear Supertypes
Actor, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PersistenceMonitor
  2. Actor
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new PersistenceMonitor(name: String, squadService: ActorRef, galaxyService: ActorRef)

    name

    the unique name of the player

    squadService

    a hook into the SquadService event system

Type Members

  1. type Receive = PartialFunction[Any, Unit]
    Definition Classes
    Actor

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def AvatarLogout(avatar: Avatar): Unit

    A common set of actions to perform in the course of logging out an avatar.

    A common set of actions to perform in the course of logging out an avatar. Of the four scenarios described - in transport, on foot, released, missing - three of them utilize these operations. The avatar will virtually always be in an existential position, one that needs to be handled at logout

    avatar

    the avatar

    See also

    Avatar

    Deployables.Disown

    Service.Leave

    Zone.Population.Leave

  5. def PerformLogout(): Unit

    When the sustenance updates of the persistence monitor come to an end, and the persistence monitor itself is about to clean itself up, the player and avatar combination that has been associated with it will also undergo independent end of life activity.

    When the sustenance updates of the persistence monitor come to an end, and the persistence monitor itself is about to clean itself up, the player and avatar combination that has been associated with it will also undergo independent end of life activity. This is the true purpose of the persistence object - to perform a proper logout.

    The updates have been providing the zone and the basic information about the user (player name) has been provided since the beginning and it's a trivial matter to find where the avatar and player and assess their circumstances. The four important vectors are: the player avatar is in a vehicle, the player avatar is standing, only the avatar exists and the player released, and neither the avatar nor the player exist. It does not matter whether the player, if encountered, is alive or dead, only if they have been rendered a corpse and did not respawn. The fourth condition is not technically a failure condition, and can arise during normal transitional gameplay, but should be uncommon.

  6. def PlayerAvatarLogout(avatar: Avatar, player: Player): Unit

    A common set of actions to perform in the course of logging out a player avatar.

    A common set of actions to perform in the course of logging out a player avatar. Of the four scenarios described - in transport, on foot, released, missing - two of them utilize these operations. One of the other two uses a modified version of some of these activities to facilitate its log out. As this persistence monitor is about to become invalid, any messages sent in response to what we are sending are received by the monitor's parent.

    avatar

    the avatar

    player

    the player

    See also

    Avatar

    AvatarAction.ObjectDelete

    AvatarServiceMessage

    GUIDTask.UnregisterPlayer

    Player

    Zone.AvatarEvents

    Zone.Population.Release

  7. def UpdateTimer(): Unit

    Restart the minimum activity timer.

  8. def aroundPostRestart(reason: Throwable): Unit
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  9. def aroundPostStop(): Unit
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  10. def aroundPreRestart(reason: Throwable, message: Option[Any]): Unit
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  11. def aroundPreStart(): Unit
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  12. def aroundReceive(receive: akka.actor.Actor.Receive, msg: Any): Unit
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  13. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  14. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  15. implicit val context: ActorContext
    Definition Classes
    Actor
  16. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  18. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  20. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  21. var inZone: Zone

    the last-reported zone of this player

  22. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  23. var kickTime: Option[Long]

  24. var kicked: Boolean

  25. var lastPosition: Vector3

    the last-reported game coordinate position of this player

  26. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  27. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  28. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  29. var persistTime: Option[Long]

    a custom logout time for this player; 60s by default

  30. def postRestart(reason: Throwable): Unit
    Definition Classes
    Actor
    Annotations
    @throws(classOf[java.lang.Exception])
  31. def postStop(): Unit

    Perform logout operations before the persistence monitor finally stops.

    Perform logout operations before the persistence monitor finally stops.

    Definition Classes
    PersistenceMonitor → Actor
  32. def preRestart(reason: Throwable, message: Option[Any]): Unit
    Definition Classes
    Actor
    Annotations
    @throws(classOf[java.lang.Exception])
  33. def preStart(): Unit
    Definition Classes
    Actor
    Annotations
    @throws(classOf[java.lang.Exception])
  34. def receive: Receive
    Definition Classes
    PersistenceMonitor → Actor
  35. implicit final val self: ActorRef
    Definition Classes
    Actor
  36. final def sender(): ActorRef
    Definition Classes
    Actor
  37. def supervisorStrategy: SupervisorStrategy
    Definition Classes
    Actor
  38. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  39. var timer: Cancellable

    the ongoing amount of permissible inactivity

  40. def toString(): String
    Definition Classes
    AnyRef → Any
  41. def unhandled(message: Any): Unit
    Definition Classes
    Actor
  42. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  43. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  44. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Actor

Inherited from AnyRef

Inherited from Any

Ungrouped