Skip to content

AdvancementDisplay

fren_gor edited this page Aug 19, 2021 · 25 revisions

The AdvancementDisplay class stores information about the advancement graphic aspects. It stores:

Value Description
Icon The itemstack that will be shown on the advancement GUI
Title The title of the advancement, shown when a player hovers the advancement in the advancement GUI
Description The description of the advancement, shown when a player hovers the advancement in the advancement GUI
Frame Type The shape of advancement in the advancement GUI
x The x coordinate of the advancement in the advancement GUI
y The y coordinate of the advancement in the advancement GUI
Show Toast Whether to show the toast when a player grants the advancement
Announce Chat Whether to show the announce message on the chat when a player grants the advancement

Let's see them in detail.

Advancement Coordinates

Advancements are displayed inside the advancement GUI based on two coordinates: x and y.
The advancement GUI can be thought as a positive Cartesian Plane (so x > 0 and y > 0), where the origin is fixed in the upper-left corner of the advancement GUI.

Advancement GUI Coordinate System

Note that the y-axis is going downwards

Frame Types

There are three possible frame types, enumerated in AdvancementFrameType:

Frame Type Result
Task Task
Goal Goal
Challange Challange

Toast

A toast is a notification that comes out at the top-right of the player screen when they completes an advancement:

A toast message.

Through the API it's also possible to send custom toast using UltimateAdvancementAPI#displayCustomToast().

AnnounceChat

The announce message is sent to all online players on the server when someone completes an advancement. There is a default message which is like the vanilla one: Message

When it gets hovered the name, title and description of the advancement will be displayed: Message Hover

The message can be customized by either:

  • Overriding Advancement#getAnnounceMessage() when creating an advancement. Useful when only one advancement will have a custom message.
  • Extending AdvancementDisplay. Useful when multiple advancements will have the same custom message.

AdvancementDisplay vs FancyAdvancementDisplay

In addition to AdvancementDisplay, UltimateAdvancementAPI contains also the FancyAdvancementDisplay class, which should provide a fancier advancement.
The main differeces are:

| Feature | AdvancementDisplay | FancyAdvancementDisplay | Description | | :---: | :----------------: | :---------------------: | | Description default color (if not provided) | Depends on the frame type | Light gray (§7) | In vanilla, the advancement description color is lime (§a) for tasks and goals, while purple (§5) for challenges. FancyAdvancementDisplay sets it to light gray, while AdvancementDisplay follows vanilla. Default color doesn't obviously matter if every line starts with a color code. | | Empty line between title and description | No empty line is added | An empty line is added if there isn't one already | Title and description can be separated by an empty line. It is automatically added by FancyAdvancementDisplay, while AdvancementDisplay never adds it. |