Class DominionAPI

java.lang.Object
cn.lunadeer.dominion.api.DominionAPI

public abstract class DominionAPI extends Object
Interface representing the Dominion API.

This interface provides methods to interact with the Dominion plugin.

Use the getInstance() method to retrieve the singleton instance of the DominionAPI.

  • Field Details

  • Constructor Details

    • DominionAPI

      public DominionAPI()
  • Method Details

    • getInstance

      public static DominionAPI getInstance()
      Retrieves the singleton instance of the DominionAPI. This method checks if the Dominion plugin is enabled and if the version is compatible. If these checks pass, it retrieves the instance of the DominionAPI from the DominionInterface class.
      Returns:
      the singleton instance of the DominionAPI
    • getPlayer

      @Nullable public abstract @Nullable PlayerDTO getPlayer(String name)
      Retrieves a PlayerDTO by the player's name.
      Parameters:
      name - the name of the player
      Returns:
      the PlayerDTO associated with the given name, or null if not found
    • getPlayer

      @Nullable public abstract @Nullable PlayerDTO getPlayer(@NotNull @NotNull UUID player)
      Retrieves a PlayerDTO by the player's UUID.
      Parameters:
      player - the UUID of the player
      Returns:
      the PlayerDTO associated with the given UUID, or null if not found
    • getPlayerName

      @NotNull public abstract @NotNull String getPlayerName(@NotNull @NotNull UUID uuid)
      Retrieves the name of a player by their UUID.
      Parameters:
      uuid - the UUID of the player
      Returns:
      the name of the player associated with the given UUID
    • getAllDominions

      public abstract List<DominionDTO> getAllDominions()
      Retrieves all DominionDTO objects.

      This method retrieves all dominions from the cache of this server. If multi-servers mode is enabled, it also retrieves dominions from the caches of other servers.

      Returns:
      a list of all DominionDTO objects
    • getChildrenDominionOf

      public abstract List<DominionDTO> getChildrenDominionOf(DominionDTO parent)
      Retrieves the child dominions of a given parent dominion.

      This method retrieves the child dominions of the specified parent dominion from the cache of this server. If multi-servers mode is enabled, it also retrieves child dominions from the caches of other servers.

      Parameters:
      parent - the parent DominionDTO whose children are to be retrieved
      Returns:
      a list of child DominionDTO objects
    • getDominion

      @Nullable public abstract @Nullable DominionDTO getDominion(Integer id)
      Retrieves a DominionDTO by its ID.

      This method will first attempt to retrieve the DominionDTO from the cache of this server. If the DominionDTO is not found, it will then attempt to retrieve the DominionDTO from the caches of other servers.

      Parameters:
      id - the ID of the dominion to retrieve
      Returns:
      the DominionDTO associated with the given ID
    • getDominion

      @Nullable public abstract @Nullable DominionDTO getDominion(String name)
      Retrieves a DominionDTO by its name.

      This method will first attempt to retrieve the DominionDTO from the cache of this server. If the DominionDTO is not found, it will then attempt to retrieve the DominionDTO from the caches of other servers.

      Parameters:
      name - the name of the dominion to retrieve
      Returns:
      the DominionDTO associated with the given name
    • getDominion

      @Nullable public abstract @Nullable DominionDTO getDominion(org.bukkit.Location location)
      Retrieves a DominionDTO by its location.

      This method retrieves the DominionDTO associated with the given location from the cache of this server.

      Parameters:
      location - the location to retrieve the dominion for
      Returns:
      the DominionDTO associated with the given location, or null if not found
    • getPlayerOwnDominionDTOs

      public abstract List<DominionDTO> getPlayerOwnDominionDTOs(UUID player)
      Retrieves the dominions owned by a player.

      This method retrieves the dominions owned by the player from the cache of this server. If multi-servers mode is enabled, it also retrieves the dominions owned by the player from the caches of other servers.

      Parameters:
      player - the UUID of the player
      Returns:
      a list of DominionDTO objects representing the dominions owned by the player
    • getPlayerAdminDominionDTOs

      public abstract List<DominionDTO> getPlayerAdminDominionDTOs(UUID player)
      Retrieves the dominions where a player is an admin.

      This method retrieves the dominions where the player is an admin from the cache of this server. If multi-servers mode is enabled, it also retrieves the dominions where the player is an admin from the caches of other servers.

      Parameters:
      player - the UUID of the player
      Returns:
      a list of DominionDTO objects representing the dominions where the player is an admin
    • getMember

      @Nullable public abstract @Nullable MemberDTO getMember(@Nullable @Nullable DominionDTO dominion, @NotNull @NotNull org.bukkit.entity.Player player)
      Retrieves a MemberDTO by the player's UUID.

      This method retrieves the MemberDTO associated with the given player from the specified dominion.

      Parameters:
      dominion - the DominionDTO to retrieve the member from
      player - the Player object representing the player
      Returns:
      the MemberDTO associated with the given player, or null if not found
    • getMember

      @Nullable public abstract @Nullable MemberDTO getMember(@Nullable @Nullable DominionDTO dominion, @NotNull @NotNull UUID player)
      Retrieves a MemberDTO by the player's UUID.

      This method retrieves the MemberDTO associated with the given player from the specified dominion. If the member is not found in the cache of this server, it will attempt to retrieve the member from the caches of other servers if multi-servers mode is enabled.

      Parameters:
      dominion - the DominionDTO to retrieve the member from
      player - the UUID of the player
      Returns:
      the MemberDTO associated with the given player, or null if not found
    • getGroup

      @Nullable public abstract @Nullable GroupDTO getGroup(MemberDTO member)
      Retrieves a GroupDTO by the member's group ID.

      This method retrieves the GroupDTO associated with the group ID of the given member.

      Parameters:
      member - the MemberDTO whose group ID is to be used for retrieval
      Returns:
      the GroupDTO associated with the given member's group ID, or null if not found
    • getGroup

      @Nullable public abstract @Nullable GroupDTO getGroup(Integer id)
      Retrieves a GroupDTO by its ID.

      This method retrieves the GroupDTO associated with the given ID from the cache of this server. If the GroupDTO is not found, it will then attempt to retrieve the GroupDTO from the caches of other servers if multi-servers mode is enabled.

      Parameters:
      id - the ID of the group to retrieve
      Returns:
      the GroupDTO associated with the given ID, or null if not found
    • getPlayerCurrentDominion

      @Nullable public abstract @Nullable DominionDTO getPlayerCurrentDominion(@NotNull @NotNull org.bukkit.entity.Player player)
      Retrieves the current dominion of a player.

      This method retrieves the current dominion of the player based on their location. It checks if the player is still in the same dominion and if the dominion has no children. If the player has moved to a different dominion, it triggers the appropriate events and updates the player's current dominion ID.

      Parameters:
      player - the Player object representing the player
      Returns:
      the DominionDTO associated with the player's current location, or null if not found
    • resetPlayerCurrentDominionId

      public abstract void resetPlayerCurrentDominionId(@NotNull @NotNull org.bukkit.entity.Player player)
      Resets the current dominion ID for a player.

      This method removes the current dominion ID associated with the player from the cache.

      Parameters:
      player - the Player object representing the player
    • dominionCount

      public abstract Integer dominionCount()
      Retrieves the total count of dominions.

      This method calculates the total number of dominions by summing the count of dominions on this server and, if multi-servers mode is enabled, the counts from other servers.

      Returns:
      the total count of dominions
    • groupCount

      public abstract Integer groupCount()
      Retrieves the total count of groups.

      This method calculates the total number of groups by summing the count of groups on this server and, if multi-servers mode is enabled, the counts from other servers.

      Returns:
      the total count of groups
    • memberCount

      public abstract Integer memberCount()
      Retrieves the total count of members.

      This method calculates the total number of members by summing the count of members on this server and, if multi-servers mode is enabled, the counts from other servers.

      Returns:
      the total count of members
    • checkPrivilegeFlag

      public abstract boolean checkPrivilegeFlag(@NotNull @NotNull org.bukkit.Location location, @NotNull @NotNull PriFlag flag, @NotNull @NotNull org.bukkit.entity.Player player)
      Checks if a player has a specific privilege flag at the given location.

      This method verifies whether the player has permission for the specified privilege flag at the given location, considering the dominion (if any) that covers the location. If the player lacks the required privilege, appropriate messages or events may be triggered.

      Parameters:
      location - the location to check the privilege flag at
      flag - the privilege flag to check
      player - the player whose privileges are being checked
      Returns:
      true if the player has the privilege flag at the location, false otherwise
    • checkPrivilegeFlag

      public abstract boolean checkPrivilegeFlag(@Nullable @Nullable DominionDTO dom, @NotNull @NotNull PriFlag flag, @NotNull @NotNull org.bukkit.entity.Player player)
      Checks if a player has a specific privilege flag for the given dominion.

      This method verifies whether the player has permission for the specified privilege flag within the provided dominion. If the dominion is null, the check may be performed in a global or default context.

      Since 4.5.0 you should use checkPrivilegeFlag(Location, PriFlag, Player) instead, because this method does not check the world-wide privilege flag, which is not recommended to use.

      Parameters:
      dom - the DominionDTO to check the privilege flag in, or null if not applicable
      flag - the privilege flag to check
      player - the player whose privileges are being checked
      Returns:
      true if the player has the privilege flag in the dominion, false otherwise
    • checkPrivilegeFlagSilence

      public abstract boolean checkPrivilegeFlagSilence(@NotNull @NotNull org.bukkit.Location location, @NotNull @NotNull PriFlag flag, @NotNull @NotNull org.bukkit.entity.Player player)
      Checks if a player has a specific privilege flag at the given location without triggering messages or events.

      This method performs the same privilege check as checkPrivilegeFlag(Location, PriFlag, Player) but operates silently, without sending any messages to the player or triggering related events. This is useful for internal checks where user feedback is not desired.

      Parameters:
      location - the location to check the privilege flag at
      flag - the privilege flag to check
      player - the player whose privileges are being checked
      Returns:
      true if the player has the privilege flag at the location, false otherwise
    • checkPrivilegeFlagSilence

      public abstract boolean checkPrivilegeFlagSilence(@Nullable @Nullable DominionDTO dom, @NotNull @NotNull PriFlag flag, @NotNull @NotNull org.bukkit.entity.Player player)
      Checks if a player has a specific privilege flag for the given dominion without triggering messages or events.

      This method performs a silent privilege check for the specified dominion, privilege flag, and player. No messages are sent and no events are triggered, making it suitable for internal permission checks.

      Since 4.5.0 you should use checkPrivilegeFlagSilence(Location, PriFlag, Player) instead, because this method does not check the world-wide privilege flag, which is not recommended to use.

      Parameters:
      dom - the DominionDTO to check the privilege flag in, or null if not applicable
      flag - the privilege flag to check
      player - the player whose privileges are being checked
      Returns:
      true if the player has the privilege flag in the dominion, false otherwise
    • checkEnvironmentFlag

      public abstract boolean checkEnvironmentFlag(@NotNull @NotNull org.bukkit.Location location, @NotNull @NotNull EnvFlag flag)
      Checks if the specified environment flag is set at the given location.

      This method determines whether the provided environment flag is enabled at the specified location, considering the dominion (if any) that covers the location.

      Parameters:
      location - the location to check for the environment flag
      flag - the environment flag to check
      Returns:
      true if the environment flag is set at the location, false otherwise
    • checkEnvironmentFlag

      public abstract boolean checkEnvironmentFlag(@Nullable @Nullable DominionDTO dom, @NotNull @NotNull EnvFlag flag)
      Checks if the specified environment flag is set for the given dominion.

      This method determines whether the provided environment flag is enabled for the specified dominion.

      Since 4.5.0 you should use checkEnvironmentFlag(Location, EnvFlag) instead, because this method does not check the world-wide privilege flag, which is not recommended to use.

      Parameters:
      dom - the DominionDTO to check for the environment flag, or null if not applicable
      flag - the environment flag to check
      Returns:
      true if the environment flag is set for the dominion, false otherwise
    • getDominionProvider

      public static DominionProvider getDominionProvider()
      Retrieves the DominionProvider instance.

      This method provides access to the DominionProvider, which handles dominion-related operations such as creating, updating, and deleting dominions.

      Returns:
      the singleton instance of DominionProvider
    • getGroupProvider

      public static GroupProvider getGroupProvider()
      Retrieves the GroupProvider instance.

      This method provides access to the GroupProvider, which handles group-related operations such as creating, updating, and deleting groups within dominions.

      Returns:
      the singleton instance of GroupProvider
    • getMemberProvider

      public static MemberProvider getMemberProvider()
      Retrieves the MemberProvider instance.

      This method provides access to the MemberProvider, which handles member-related operations such as adding, updating, and removing members from dominions and groups.

      Returns:
      the singleton instance of MemberProvider