Interface CommonQueries

All Known Implementing Classes:
CommonQueriesImplementation

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 Details

    • fetchPlaytime

      long fetchPlaytime(UUID playerUUID, 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(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(UUID playerUUID, 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

      Set<UUID> fetchServerUUIDs()
      Get the UUIDs of all servers Plan has registered.
      Returns:
      Set of Server UUIDs
    • fetchUUIDOf

      Optional<UUID> fetchUUIDOf(String playerName)
      Fetch UUID of a player by name.
      Parameters:
      playerName - Name of the player
      Returns:
      UUID if it is found by Plan or empty if not found.
    • fetchNameOf

      Optional<String> fetchNameOf(UUID playerUUID)
      Fetch name of a player by UUID.
      Parameters:
      playerUUID - UUID of the player
      Returns:
      Name if it is known by Plan or empty if not.
    • doesDBHaveTable

      boolean doesDBHaveTable(String table)
      Check that schema has table you are using in your queries.
      Parameters:
      table - Name of the table, e.g. plan_users.
      Returns:
      true if table exists.
    • doesDBHaveTableColumn

      boolean doesDBHaveTableColumn(String table, String column)
      Check that schema table has a column you are using in your queries.
      Parameters:
      table - Name of the table, e.g. plan_users.
      column - Name of the column, e.g. id
      Returns:
      true if table and column exist.
    • fetchActivityIndexOf

      double fetchActivityIndexOf(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

      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.