Class MultiParentsAdvancement
AbstractMultiParentsAdvancement
.-
Field Summary
Fields inherited from class com.fren_gor.ultimateAdvancementAPI.advancement.BaseAdvancement
parent
Fields inherited from class com.fren_gor.ultimateAdvancementAPI.advancement.Advancement
advancementTab, display, key, maxProgression
-
Constructor Summary
ConstructorDescriptionMultiParentsAdvancement
(@NotNull String key, @NotNull AdvancementDisplay display, @Range(from=1, to=Integer.MAX_VALUE) int maxProgression, @NotNull BaseAdvancement... parents) Creates a newMultiParentsAdvancement
.MultiParentsAdvancement
(@NotNull String key, @NotNull AdvancementDisplay display, @Range(from=1, to=Integer.MAX_VALUE) int maxProgression, @NotNull Set<BaseAdvancement> parents) Creates a newMultiParentsAdvancement
.MultiParentsAdvancement
(@NotNull String key, @NotNull AdvancementDisplay display, @NotNull BaseAdvancement... parents) Creates a newMultiParentsAdvancement
with a maximum progression of1
.MultiParentsAdvancement
(@NotNull String key, @NotNull AdvancementDisplay display, @NotNull Set<BaseAdvancement> parents) Creates a newMultiParentsAdvancement
with a maximum progression of1
. -
Method Summary
Modifier and TypeMethodDescriptionReturns the NMS wrapper of this advancement.protected @NotNull AdvancementWrapper
getNMSWrapper
(@NotNull BaseAdvancement advancement) Returns the NMS wrapper of this advancement.Returns the parent advancement.Gets an unmodifiableSet
of the advancement parents.boolean
Returns whether either any parent or any grandparent advancement is granted for the provided team.boolean
Returns whether any parent advancement is granted for the provided team.boolean
Returns whether every parent and every grandparent advancements are granted for the provided team.boolean
Returns whether every parent advancement is granted for the provided team.void
Called when the advancement is disposed.void
onUpdate
(@NotNull TeamProgression teamProgression, @NotNull Map<AdvancementWrapper, Integer> addedAdvancements) Handles the serialisation of the advancement into the update packet.void
Validate the advancement after it has been registered by the advancement tab.Methods inherited from class com.fren_gor.ultimateAdvancementAPI.advancement.multiParents.AbstractMultiParentsAdvancement
isAnyGrandparentGranted, isAnyGrandparentGranted, isAnyParentGranted, isAnyParentGranted, isEveryGrandparentGranted, isEveryGrandparentGranted, isEveryParentGranted, isEveryParentGranted, validateAndGetFirst
Methods inherited from class com.fren_gor.ultimateAdvancementAPI.advancement.Advancement
displayToastToPlayer, equals, getAdvancementTab, getAnnounceMessage, getDisplay, getKey, getMaxProgression, getProgression, getProgression, getProgression, giveReward, grant, grant, handlePlayer, hashCode, incrementProgression, incrementProgression, incrementProgression, incrementProgression, incrementProgression, incrementProgression, incrementProgression, incrementProgression, incrementProgression, isGranted, isGranted, isGranted, isValid, isVisible, isVisible, isVisible, onGrant, onRegister, registerEvent, registerEvent, revoke, setProgression, setProgression, setProgression, setProgression, setProgression, toString
-
Constructor Details
-
MultiParentsAdvancement
public MultiParentsAdvancement(@NotNull @NotNull String key, @NotNull @NotNull AdvancementDisplay display, @NotNull @NotNull BaseAdvancement... parents) Creates a newMultiParentsAdvancement
with a maximum progression of1
.- 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.parents
- The advancement parents. There must be at least one.
-
MultiParentsAdvancement
public MultiParentsAdvancement(@NotNull @NotNull String key, @NotNull @NotNull AdvancementDisplay display, @Range(from=1, to=Integer.MAX_VALUE) int maxProgression, @NotNull @NotNull BaseAdvancement... parents) Creates a newMultiParentsAdvancement
.- 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.maxProgression
- The maximum advancement progression.parents
- The advancement parents. There must be at least one.
-
MultiParentsAdvancement
public MultiParentsAdvancement(@NotNull @NotNull String key, @NotNull @NotNull AdvancementDisplay display, @NotNull @NotNull Set<BaseAdvancement> parents) Creates a newMultiParentsAdvancement
with a maximum progression of1
.- 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.parents
- The advancement parents. There must be at least one.
-
MultiParentsAdvancement
public MultiParentsAdvancement(@NotNull @NotNull String key, @NotNull @NotNull AdvancementDisplay display, @Range(from=1, to=Integer.MAX_VALUE) int maxProgression, @NotNull @NotNull Set<BaseAdvancement> parents) Creates a newMultiParentsAdvancement
.- 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.maxProgression
- The maximum advancement progression.parents
- The advancement parents. There must be at least one.
-
-
Method Details
-
onUpdate
public void onUpdate(@NotNull @NotNull TeamProgression teamProgression, @NotNull @NotNull Map<AdvancementWrapper, Integer> addedAdvancements) Handles the serialisation of the advancement into the update packet.Advancement(s) to be sent have to be added to the provided
Map
, which contains theAdvancementWrapper
s paired with the progression of the provided team.- Overrides:
onUpdate
in classAdvancement
- Parameters:
teamProgression
- TheTeamProgression
of the team of the player(s).addedAdvancements
- TheMap
in which the advancements to be sent are added as keys. The values are the current progressions of the team.
-
getParents
Gets an unmodifiableSet
of the advancement parents.- Specified by:
getParents
in classAbstractMultiParentsAdvancement
- Returns:
- An unmodifiable
Set
of the advancement parents.
-
isEveryParentGranted
Returns whether every parent advancement is granted for the provided team.- Specified by:
isEveryParentGranted
in classAbstractMultiParentsAdvancement
- Parameters:
pro
- TheTeamProgression
of the team.- Returns:
- Whether every parent advancement is granted for the provided team.
-
isAnyParentGranted
Returns whether any parent advancement is granted for the provided team.- Specified by:
isAnyParentGranted
in classAbstractMultiParentsAdvancement
- Parameters:
pro
- TheTeamProgression
of the team.- Returns:
- Whether any parent advancement is granted for the provided team.
-
isEveryGrandparentGranted
Returns whether every parent and every grandparent advancements are granted for the provided team.- Specified by:
isEveryGrandparentGranted
in classAbstractMultiParentsAdvancement
- Parameters:
pro
- TheTeamProgression
of the team.- Returns:
- Whether either any parent or any grandparent advancement is granted for the provided team.
-
isAnyGrandparentGranted
Returns whether either any parent or any grandparent advancement is granted for the provided team.- Specified by:
isAnyGrandparentGranted
in classAbstractMultiParentsAdvancement
- Parameters:
pro
- TheTeamProgression
of the team.- Returns:
- Whether either any parent or any grandparent advancement is granted for the provided team.
-
validateRegister
Validate the advancement after it has been registered by the advancement tab. If the validation fails, aInvalidAdvancementException
should be thrown.For example,
BaseAdvancement
overrides this method to make sure it and its parent belongs to the same tab.Note that every method of
AdvancementTab
is available, since this method is called after every advancement has been registered and the tab has already been initialised.- Overrides:
validateRegister
in classBaseAdvancement
- Throws:
InvalidAdvancementException
- If the validation fails.
-
onDispose
public void onDispose()Called when the advancement is disposed.- Overrides:
onDispose
in classAdvancement
-
getParent
Returns the parent advancement.Calls to this method results in an undefined behaviour, since there is more than one parent.
Use when you don't need an exact parent.
- Overrides:
getParent
in classBaseAdvancement
- Returns:
- A parent advancement.
-
getNMSWrapper
Returns the NMS wrapper of this advancement.Calls to this method results in an undefined behaviour, since there is more than one parent and the NMS wrapper can contain only one.
Use when you don't need the NMS wrapper of an exact parent.
Use
getNMSWrapper(BaseAdvancement)
instead.- Overrides:
getNMSWrapper
in classBaseAdvancement
- Returns:
- The NMS wrapper of this advancement.
- See Also:
-
getNMSWrapper
@NotNull protected @NotNull AdvancementWrapper getNMSWrapper(@NotNull @NotNull BaseAdvancement advancement) Returns the NMS wrapper of this advancement. The parent of the returned advancement wrapper is the (NMS wrapper of the) provided one.- Parameters:
advancement
- The parent advancement used as the parent of the NMS wrapper.- Returns:
- The NMS wrapper of this advancement.
-