Class AbstractMultiParentsAdvancement

java.lang.Object
com.fren_gor.ultimateAdvancementAPI.advancement.Advancement
com.fren_gor.ultimateAdvancementAPI.advancement.BaseAdvancement
com.fren_gor.ultimateAdvancementAPI.advancement.multiParents.AbstractMultiParentsAdvancement
Direct Known Subclasses:
MultiParentsAdvancement

public abstract class AbstractMultiParentsAdvancement extends BaseAdvancement
The AbstractMultiParentsAdvancement class abstracts the implementation of any multi-parent advancement, providing a standard supported by the API.

A multi-parent advancement is an advancement that has more than one parent.

An implementation of AbstractMultiParentsAdvancement is MultiParentsAdvancement.

  • Constructor Details

    • AbstractMultiParentsAdvancement

      public AbstractMultiParentsAdvancement(@NotNull @NotNull String key, @NotNull @NotNull AdvancementDisplay display, @NotNull @NotNull BaseAdvancement aParent)
      Creates a new AbstractMultiParentsAdvancement with a maximum progression of 1.
      Parameters:
      key - The unique key of the advancement. It must be unique among the other advancements of the tab.
      display - The display information of this advancement.
      aParent - One of the parents of this advancement.
    • AbstractMultiParentsAdvancement

      public AbstractMultiParentsAdvancement(@NotNull @NotNull String key, @NotNull @NotNull AdvancementDisplay display, @NotNull @NotNull BaseAdvancement aParent, @Range(from=1, to=Integer.MAX_VALUE) int maxProgression)
      Creates a new AbstractMultiParentsAdvancement.
      Parameters:
      key - The unique key of the advancement. It must be unique among the other advancements of the tab.
      display - The display information of this advancement.
      aParent - One of the parents of this advancement.
      maxProgression - The maximum progression of the task.
  • Method Details

    • getParents

      @NotNull public abstract @NotNull Set<@NotNull BaseAdvancement> getParents()
      Get a Set of the parents.
      Returns:
      A Set of the parents.
    • isEveryParentGranted

      public boolean isEveryParentGranted(@NotNull @NotNull Player player)
      Returns whether every parent advancement is granted for the provided player's team.
      Parameters:
      player - The player.
      Returns:
      Whether every parent advancement is granted for the provided player's team.
    • isEveryParentGranted

      public boolean isEveryParentGranted(@NotNull @NotNull UUID uuid)
      Returns whether every parent advancement is granted for the provided player's team.
      Parameters:
      uuid - The UUID of the player.
      Returns:
      Whether every parent advancement is granted for the provided player's team.
    • isEveryParentGranted

      public abstract boolean isEveryParentGranted(@NotNull @NotNull TeamProgression progression)
      Returns whether every parent advancement is granted for the provided team.
      Parameters:
      progression - The TeamProgression of the team.
      Returns:
      Whether every parent advancement is granted for the provided team.
    • isAnyParentGranted

      public boolean isAnyParentGranted(@NotNull @NotNull Player player)
      Returns whether any parent advancement is granted for the provided player's team.
      Parameters:
      player - The player.
      Returns:
      Whether any parent advancement is granted for the provided player's team.
    • isAnyParentGranted

      public boolean isAnyParentGranted(@NotNull @NotNull UUID uuid)
      Returns whether any parent advancement is granted for the provided player's team.
      Parameters:
      uuid - The UUID of the player.
      Returns:
      Whether any parent advancement is granted for the provided player's team.
    • isAnyParentGranted

      public abstract boolean isAnyParentGranted(@NotNull @NotNull TeamProgression progression)
      Returns whether any parent advancement is granted for the provided team.
      Parameters:
      progression - The TeamProgression of the team.
      Returns:
      Whether any parent advancement is granted for the provided team.
    • isEveryGrandparentGranted

      public boolean isEveryGrandparentGranted(@NotNull @NotNull Player player)
      Returns whether every parent and every grandparent advancements are granted for the provided player's team.
      Parameters:
      player - The player.
      Returns:
      Whether either any parent or any grandparent advancement is granted for the provided player's team.
    • isEveryGrandparentGranted

      public boolean isEveryGrandparentGranted(@NotNull @NotNull UUID uuid)
      Returns whether every parent and every grandparent advancements are granted for the provided player's team.
      Parameters:
      uuid - The UUID of the player.
      Returns:
      Whether either any parent or any grandparent advancement is granted for the provided player's team.
    • isEveryGrandparentGranted

      public abstract boolean isEveryGrandparentGranted(@NotNull @NotNull TeamProgression progression)
      Returns whether every parent and every grandparent advancements are granted for the provided team.
      Parameters:
      progression - The TeamProgression of the team.
      Returns:
      Whether either any parent or any grandparent advancement is granted for the provided team.
    • isAnyGrandparentGranted

      public boolean isAnyGrandparentGranted(@NotNull @NotNull Player player)
      Returns whether either any parent or any grandparent advancement is granted for the provided player's team.
      Parameters:
      player - The player.
      Returns:
      Whether either any parent or any grandparent advancement is granted for the provided player's team.
    • isAnyGrandparentGranted

      public boolean isAnyGrandparentGranted(@NotNull @NotNull UUID uuid)
      Returns whether either any parent or any grandparent advancement is granted for the provided player's team.
      Parameters:
      uuid - The UUID of the player.
      Returns:
      Whether either any parent or any grandparent advancement is granted for the provided player's team.
    • isAnyGrandparentGranted

      public abstract boolean isAnyGrandparentGranted(@NotNull @NotNull TeamProgression progression)
      Returns whether either any parent or any grandparent advancement is granted for the provided team.
      Parameters:
      progression - The TeamProgression of the team.
      Returns:
      Whether either any parent or any grandparent advancement is granted for the provided team.
    • validateAndGetFirst

      @NotNull public static <E extends BaseAdvancement> E validateAndGetFirst(@NotNull @NotNull Set<E> advancements)
      Returns the first element of the provided Set of BaseAdvancements. This method is intended to be used to safely get an advancement from the Set of parent advancements passed as parameter in the subclass constructor. The obtained parent advancement should be passed to AbstractMultiParentsAdvancement(String, AdvancementDisplay, BaseAdvancement, int).

      If the returned element is null or it doesn't exist (the Set is empty), an IllegalArgumentException is thrown.

      Type Parameters:
      E - The type of the elements in the Set.
      Parameters:
      advancements - The advancements of the Set.
      Returns:
      The first element of the Set.
      Throws:
      IllegalArgumentException - If the Set is null, empty, or the first element is null.