Class AdvancementProviderBase

java.lang.Object
org.moddingx.libx.datagen.provider.AdvancementProviderBase
All Implemented Interfaces:
net.minecraft.data.DataProvider

public abstract class AdvancementProviderBase extends Object implements net.minecraft.data.DataProvider
Base provider for custom advancements. If you want to have multiple advancement tabs, use multiple providers. Every provider has one root advancement. All advancements with no explicit parent will be added to it. You should configure your advancements with the root() and advancement(String) methods in setup.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    class 
    An advancement factory can be used to customize an advancement in a builder style pattern.
    static interface 
    A task factory can define multiple tasks.

    Nested classes/interfaces inherited from interface net.minecraft.data.DataProvider

    net.minecraft.data.DataProvider.Factory<T>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final ModX
     
    protected final PackTarget
     

    Fields inherited from interface net.minecraft.data.DataProvider

    FIXED_ORDER_FIELDS, INDENT_WIDTH, KEY_COMPARATOR, LOGGER
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Adds an advancement to the provider identified by an id.
    advancement(net.minecraft.resources.Identifier id)
    Adds an advancement to the provider identified by its Identifier.
    void
    advancement(net.minecraft.resources.Identifier id, net.minecraft.advancements.Advancement advancement)
    Adds a built advancement to the provider.
    net.minecraft.advancements.Criterion<?>
    changeDim(net.minecraft.resources.ResourceKey<net.minecraft.world.level.Level> from, net.minecraft.resources.ResourceKey<net.minecraft.world.level.Level> to)
    Gets a criterion that requires a player to perform a specific dimension change.
    protected List<net.neoforged.neoforge.common.conditions.ICondition>
    Gets a list of conditions for all advancements added by this provider.
    net.minecraft.advancements.Criterion<?>
    eat()
    Gets a criterion that requires a player to consume (eat/drink) any item.
    net.minecraft.advancements.Criterion<?>
    eat(net.minecraft.advancements.criterion.ItemPredicate food)
    Gets a criterion that requires a player to consume (eat/drink) an item.
    net.minecraft.advancements.Criterion<?>
    eat(net.minecraft.tags.TagKey<net.minecraft.world.item.Item> food)
    Gets a criterion that requires a player to consume (eat/drink) an item.
    net.minecraft.advancements.Criterion<?>
    eat(net.minecraft.world.level.ItemLike food)
    Gets a criterion that requires a player to consume (eat/drink) an item.
    net.minecraft.advancements.Criterion<?>
    enter(net.minecraft.resources.ResourceKey<net.minecraft.world.level.Level> dimension)
    Gets a criterion that requires a player to enter a dimension.
    net.minecraft.advancements.criterion.ContextAwarePredicate
    entity(net.minecraft.advancements.criterion.EntityPredicate entity)
    Gets the given EntityPredicate as an ContextAwarePredicate.
    net.minecraft.advancements.criterion.ContextAwarePredicate
    entity(net.minecraft.world.entity.EntityType<?> type)
    Gets an ContextAwarePredicate that matches for a specific entity type.
     
    net.minecraft.advancements.Criterion<?>
    items(net.minecraft.advancements.criterion.ItemPredicate... items)
    Gets a criterion that requires all the given items to be in the inventory at the same time.
    final net.minecraft.advancements.Criterion<?>
    items(net.minecraft.tags.TagKey<net.minecraft.world.item.Item>... items)
    Gets a criterion that requires all the given items to be in the inventory at the same time.
    net.minecraft.advancements.Criterion<?>
    items(net.minecraft.world.level.ItemLike... items)
    Gets a criterion that requires all the given items to be in the inventory at the same time.
    itemTasks(net.minecraft.advancements.criterion.ItemPredicate... items)
    Gets a AdvancementProviderBase.TaskFactory that adds a task for every item given to this method.
    itemTasks(net.minecraft.tags.TagKey<net.minecraft.world.item.Item>... items)
    Gets a AdvancementProviderBase.TaskFactory that adds a task for every item given to this method.
    itemTasks(net.minecraft.world.level.ItemLike... items)
    Gets a AdvancementProviderBase.TaskFactory that adds a task for every item given to this method.
    net.minecraft.advancements.Criterion<?>
    leave(net.minecraft.resources.ResourceKey<net.minecraft.world.level.Level> dimension)
    Gets a criterion that requires a player to leave a dimension.
    Gets an AdvancementProviderBase.AdvancementFactory to customize the root advancement for this provider.
    Gets an AdvancementProviderBase.AdvancementFactory to customize the root advancement for this provider.
    root(String namespace, String id)
    Gets an AdvancementProviderBase.AdvancementFactory to customize the root advancement for this provider.
    run(net.minecraft.data.CachedOutput cache)
     
    abstract void
     
    final net.minecraft.advancements.criterion.ItemPredicate
    stack(net.minecraft.resources.ResourceKey<net.minecraft.world.item.enchantment.Enchantment>... enchs)
    Gets an ItemPredicate for some enchantments.
    net.minecraft.advancements.criterion.ItemPredicate
    stack(net.minecraft.resources.ResourceKey<net.minecraft.world.item.enchantment.Enchantment> ench, int min)
    Gets an ItemPredicate for an enchantment with a minimum level.
    final net.minecraft.advancements.criterion.ItemPredicate
    stack(net.minecraft.tags.TagKey<net.minecraft.world.item.Item> item, net.minecraft.resources.ResourceKey<net.minecraft.world.item.enchantment.Enchantment>... enchs)
    Gets an ItemPredicate for an item and optionally some enchantments.
    final net.minecraft.advancements.criterion.ItemPredicate
    stack(net.minecraft.world.level.ItemLike item, net.minecraft.resources.ResourceKey<net.minecraft.world.item.enchantment.Enchantment>... enchs)
    Gets an ItemPredicate for an item and optionally some enchantments.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • mod

      protected final ModX mod
    • packTarget

      protected final PackTarget packTarget
  • Constructor Details

    • AdvancementProviderBase

      public AdvancementProviderBase(DatagenContext ctx)
  • Method Details

    • setup

      public abstract void setup()
    • conditions

      protected List<net.neoforged.neoforge.common.conditions.ICondition> conditions()
      Gets a list of conditions for all advancements added by this provider.
    • getName

      @Nonnull public String getName()
      Specified by:
      getName in interface net.minecraft.data.DataProvider
    • run

      @Nonnull public CompletableFuture<?> run(@Nonnull net.minecraft.data.CachedOutput cache)
      Specified by:
      run in interface net.minecraft.data.DataProvider
    • root

      Gets an AdvancementProviderBase.AdvancementFactory to customize the root advancement for this provider. The root id will be the modid.
      See Also:
    • root

      Gets an AdvancementProviderBase.AdvancementFactory to customize the root advancement for this provider.
      Parameters:
      id - The root id. The actual advancement id will be modid:id/root
      See Also:
    • root

      Gets an AdvancementProviderBase.AdvancementFactory to customize the root advancement for this provider.
      Parameters:
      namespace - The namespace of the root advancement.
      id - The root id. The actual advancement id will be namespace:id/root
    • advancement

      public void advancement(net.minecraft.resources.Identifier id, net.minecraft.advancements.Advancement advancement)
      Adds a built advancement to the provider.
    • advancement

      public AdvancementProviderBase.AdvancementFactory advancement(net.minecraft.resources.Identifier id)
      Adds an advancement to the provider identified by its Identifier. Returns an AdvancementProviderBase.AdvancementFactory to customize the advancement.
    • advancement

      Adds an advancement to the provider identified by an id. The Identifier is built with the modid and the root advancement id. Returns an AdvancementProviderBase.AdvancementFactory to customize the advancement.
    • items

      public net.minecraft.advancements.Criterion<?> items(net.minecraft.world.level.ItemLike... items)
      Gets a criterion that requires all the given items to be in the inventory at the same time.
    • items

      @SafeVarargs public final net.minecraft.advancements.Criterion<?> items(net.minecraft.tags.TagKey<net.minecraft.world.item.Item>... items)
      Gets a criterion that requires all the given items to be in the inventory at the same time.
    • items

      public net.minecraft.advancements.Criterion<?> items(net.minecraft.advancements.criterion.ItemPredicate... items)
      Gets a criterion that requires all the given items to be in the inventory at the same time.
    • itemTasks

      public AdvancementProviderBase.TaskFactory itemTasks(net.minecraft.world.level.ItemLike... items)
      Gets a AdvancementProviderBase.TaskFactory that adds a task for every item given to this method.
    • itemTasks

      @SafeVarargs public final AdvancementProviderBase.TaskFactory itemTasks(net.minecraft.tags.TagKey<net.minecraft.world.item.Item>... items)
      Gets a AdvancementProviderBase.TaskFactory that adds a task for every item given to this method.
    • itemTasks

      public AdvancementProviderBase.TaskFactory itemTasks(net.minecraft.advancements.criterion.ItemPredicate... items)
      Gets a AdvancementProviderBase.TaskFactory that adds a task for every item given to this method.
    • eat

      public net.minecraft.advancements.Criterion<?> eat()
      Gets a criterion that requires a player to consume (eat/drink) any item.
    • eat

      public net.minecraft.advancements.Criterion<?> eat(net.minecraft.world.level.ItemLike food)
      Gets a criterion that requires a player to consume (eat/drink) an item.
    • eat

      public net.minecraft.advancements.Criterion<?> eat(net.minecraft.tags.TagKey<net.minecraft.world.item.Item> food)
      Gets a criterion that requires a player to consume (eat/drink) an item.
    • eat

      public net.minecraft.advancements.Criterion<?> eat(net.minecraft.advancements.criterion.ItemPredicate food)
      Gets a criterion that requires a player to consume (eat/drink) an item.
    • leave

      public net.minecraft.advancements.Criterion<?> leave(net.minecraft.resources.ResourceKey<net.minecraft.world.level.Level> dimension)
      Gets a criterion that requires a player to leave a dimension.
    • enter

      public net.minecraft.advancements.Criterion<?> enter(net.minecraft.resources.ResourceKey<net.minecraft.world.level.Level> dimension)
      Gets a criterion that requires a player to enter a dimension.
    • changeDim

      public net.minecraft.advancements.Criterion<?> changeDim(net.minecraft.resources.ResourceKey<net.minecraft.world.level.Level> from, net.minecraft.resources.ResourceKey<net.minecraft.world.level.Level> to)
      Gets a criterion that requires a player to perform a specific dimension change.
    • entity

      public net.minecraft.advancements.criterion.ContextAwarePredicate entity(net.minecraft.advancements.criterion.EntityPredicate entity)
      Gets the given EntityPredicate as an ContextAwarePredicate.
    • entity

      public net.minecraft.advancements.criterion.ContextAwarePredicate entity(net.minecraft.world.entity.EntityType<?> type)
      Gets an ContextAwarePredicate that matches for a specific entity type.
    • stack

      @SafeVarargs public final net.minecraft.advancements.criterion.ItemPredicate stack(net.minecraft.world.level.ItemLike item, net.minecraft.resources.ResourceKey<net.minecraft.world.item.enchantment.Enchantment>... enchs)
      Gets an ItemPredicate for an item and optionally some enchantments.
    • stack

      @SafeVarargs public final net.minecraft.advancements.criterion.ItemPredicate stack(net.minecraft.tags.TagKey<net.minecraft.world.item.Item> item, net.minecraft.resources.ResourceKey<net.minecraft.world.item.enchantment.Enchantment>... enchs)
      Gets an ItemPredicate for an item and optionally some enchantments.
    • stack

      @SafeVarargs public final net.minecraft.advancements.criterion.ItemPredicate stack(net.minecraft.resources.ResourceKey<net.minecraft.world.item.enchantment.Enchantment>... enchs)
      Gets an ItemPredicate for some enchantments.
    • stack

      public net.minecraft.advancements.criterion.ItemPredicate stack(net.minecraft.resources.ResourceKey<net.minecraft.world.item.enchantment.Enchantment> ench, int min)
      Gets an ItemPredicate for an enchantment with a minimum level.