Class Advancement

java.lang.Object
com.github.darksoulq.abyssallib.world.advancement.Advancement

public class Advancement extends Object
Represents a custom advancement within the AbyssalLib framework. This class handles the serialization, NMS conversion, and evaluation logic for player-driven progress and achievements.
  • Field Details

    • CODEC

      public static final Codec<Advancement> CODEC
      The codec responsible for serializing and deserializing advancements. Supports nested criteria, rewards, and display information.
  • Constructor Details

    • Advancement

      public Advancement(net.kyori.adventure.key.Key id, net.kyori.adventure.key.Key parent, AdvancementDisplay display, Map<String, AdvancementCriterion> criteria, List<AdvancementReward> rewards)
      Constructs a new Advancement.
      Parameters:
      id - The unique identifier.
      parent - The parent identifier (nullable).
      display - The display info (nullable).
      criteria - The criteria map.
      rewards - The rewards list.
  • Method Details

    • resolve

      public static Advancement resolve(org.bukkit.advancement.Advancement bukkitAdvancement)
      Resolves a Bukkit advancement to its custom counterpart.
      Parameters:
      bukkitAdvancement - The Bukkit advancement to resolve.
      Returns:
      The custom Advancement, or null if not registered.
    • getProgress

      public CustomAdvancementProgress getProgress(org.bukkit.entity.Player player)
      Retrieves the progress of a specific player toward this advancement.
      Parameters:
      player - The player to check.
      Returns:
      The progress wrapper, or null if the advancement is not loaded.
    • getId

      public net.kyori.adventure.key.Key getId()
      Returns:
      The unique identifier Key.
    • getParent

      public net.kyori.adventure.key.Key getParent()
      Returns:
      The parent identifier Key.
    • getDisplay

      public AdvancementDisplay getDisplay()
      Returns:
      The display configuration.
    • getCriteria

      public Map<String, AdvancementCriterion> getCriteria()
      Returns:
      The map of criteria.
    • getRewards

      public List<AdvancementReward> getRewards()
      Returns:
      The list of rewards.
    • evaluate

      public void evaluate(org.bukkit.entity.Player player)
      Evaluates all criteria for a player without a specific event.
      Parameters:
      player - The player to evaluate.
    • evaluate

      public void evaluate(org.bukkit.entity.Player player, org.bukkit.event.Event event)
      Evaluates criteria for a player, optionally filtered by a triggering event.
      Parameters:
      player - The player to evaluate.
      event - The triggering event, or null for general evaluation.
    • toNMS

      public net.minecraft.advancements.Advancement toNMS()
      Converts this instance to a Minecraft NMS Advancement.
      Returns:
      The NMS Advancement instance.
    • toNMSHolder

      public net.minecraft.advancements.AdvancementHolder toNMSHolder()
      Wraps the NMS advancement into a Holder.
      Returns:
      The AdvancementHolder instance.
    • builder

      public static Advancement.Builder builder(net.kyori.adventure.key.Key id)
      Creates a new builder for an Advancement.
      Parameters:
      id - The identifier for the advancement.
      Returns:
      A new Builder instance.