Class SessionCache


  • @Singleton
    public class SessionCache
    extends java.lang.Object
    This class is used to store active sessions of players in memory.
    • Constructor Detail

      • SessionCache

        @Inject
        public SessionCache()
    • Method Detail

      • getActiveSessions

        public static java.util.Collection<ActiveSession> getActiveSessions()
      • clear

        public static void clear()
      • refreshActiveSessionsState

        public static void refreshActiveSessionsState()
      • getCachedSession

        public static java.util.Optional<ActiveSession> getCachedSession​(java.util.UUID playerUUID)
        Used to get the Session of the player in the sessionCache.
        Parameters:
        playerUUID - UUID of the player.
        Returns:
        Optional with the session inside it if found.
      • cacheSession

        public java.util.Optional<FinishedSession> cacheSession​(java.util.UUID playerUUID,
                                                                ActiveSession newSession)
        Cache a new session.
        Parameters:
        playerUUID - UUID of the player
        newSession - Session to cache.
        Returns:
        Optional: previous session. Recipients of this object should decide if it needs to be saved.
      • endSession

        public java.util.Optional<FinishedSession> endSession​(java.util.UUID playerUUID,
                                                              long time,
                                                              ActiveSession activeSession)
        End a session and save it to database.
        Parameters:
        playerUUID - UUID of the player.
        time - Time the session ended.
        activeSession - Currently active session
        Returns:
        Optional: ended session. Recipients of this object should decide if it needs to be saved.
      • endSession

        public java.util.Optional<FinishedSession> endSession​(java.util.UUID playerUUID,
                                                              long time)