Interface CommonQueries


  • public interface CommonQueries
    Class that allows performing most commonly wanted queries.

    This exists so that SQL does not necessarily need to be written. Obtain an instance from QueryService.

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean doesDBHaveTable​(java.lang.String table)  
      boolean doesDBHaveTableColumn​(java.lang.String table, java.lang.String column)  
      double fetchActivityIndexOf​(java.util.UUID playerUUID, long epochMs)
      Calculates the activity index for the player at a specific date.
      long fetchCurrentSessionPlaytime​(java.util.UUID playerUUID)
      Get playtime of current online session.
      long fetchLastSeen​(java.util.UUID playerUUID, java.util.UUID serverUUID)
      Fetch last seen Epoch ms for a player on a server.
      java.util.Optional<java.lang.String> fetchNameOf​(java.util.UUID playerUUID)  
      long fetchPlaytime​(java.util.UUID playerUUID, java.util.UUID serverUUID, long after, long before)
      Fetch playtime of a player on a server.
      java.util.Set<java.util.UUID> fetchServerUUIDs()  
      java.util.Optional<java.util.UUID> fetchUUIDOf​(java.lang.String playerName)  
      java.lang.String getActivityGroupForIndex​(double activityIndex)
      Get a String that represents the Activity group for an index.
    • Method Detail

      • fetchPlaytime

        long fetchPlaytime​(java.util.UUID playerUUID,
                           java.util.UUID serverUUID,
                           long after,
                           long before)
        Fetch playtime of a player on a server.

        Returns 0 for any non existing players or servers.

        Parameters:
        playerUUID - UUID of the player.
        serverUUID - UUID of the Plan server.
        after - Data after this Epoch ms should be fetched
        before - Data before this Epoch ms should be fetched
        Returns:
        Milliseconds the player has played with the defined parameters.
      • fetchCurrentSessionPlaytime

        long fetchCurrentSessionPlaytime​(java.util.UUID playerUUID)
        Get playtime of current online session.

        Requires Capability QUERY_API_ACTIVE_SESSION_PLAYTIME

        Parameters:
        playerUUID - UUID of the player.
        Returns:
        Milliseconds the player has played during current online session. 0 if player is offline.
      • fetchLastSeen

        long fetchLastSeen​(java.util.UUID playerUUID,
                           java.util.UUID serverUUID)
        Fetch last seen Epoch ms for a player on a server.
        Parameters:
        playerUUID - UUID of the player.
        serverUUID - UUID of the Plan server.
        Returns:
        Epoch ms the player was last seen, 0 if player has not played on server.
      • fetchServerUUIDs

        java.util.Set<java.util.UUID> fetchServerUUIDs()
      • fetchUUIDOf

        java.util.Optional<java.util.UUID> fetchUUIDOf​(java.lang.String playerName)
      • fetchNameOf

        java.util.Optional<java.lang.String> fetchNameOf​(java.util.UUID playerUUID)
      • doesDBHaveTable

        boolean doesDBHaveTable​(java.lang.String table)
      • doesDBHaveTableColumn

        boolean doesDBHaveTableColumn​(java.lang.String table,
                                      java.lang.String column)
      • fetchActivityIndexOf

        double fetchActivityIndexOf​(java.util.UUID playerUUID,
                                    long epochMs)
        Calculates the activity index for the player at a specific date.
        Parameters:
        playerUUID - UUID of the player.
        epochMs - Epoch millisecond to use for calculation
        Returns:
        a double between 0.0 and 5.0.
      • getActivityGroupForIndex

        java.lang.String getActivityGroupForIndex​(double activityIndex)
        Get a String that represents the Activity group for an index.
        Parameters:
        activityIndex - a double between 0.0 and 5.0.
        Returns:
        Name of the group (in English) that this activityIndex falls within.