soiz1's picture
Upload folder using huggingface_hub
d46f4a3 verified
package net.minecraft.data.advancements.packs;
import java.util.Optional;
import java.util.function.Consumer;
import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.AdvancementHolder;
import net.minecraft.advancements.AdvancementRequirements;
import net.minecraft.advancements.AdvancementRewards;
import net.minecraft.advancements.AdvancementType;
import net.minecraft.advancements.critereon.BlockPredicate;
import net.minecraft.advancements.critereon.BrewedPotionTrigger;
import net.minecraft.advancements.critereon.ChangeDimensionTrigger;
import net.minecraft.advancements.critereon.ConstructBeaconTrigger;
import net.minecraft.advancements.critereon.ContextAwarePredicate;
import net.minecraft.advancements.critereon.DamageSourcePredicate;
import net.minecraft.advancements.critereon.DistancePredicate;
import net.minecraft.advancements.critereon.DistanceTrigger;
import net.minecraft.advancements.critereon.EffectsChangedTrigger;
import net.minecraft.advancements.critereon.EntityEquipmentPredicate;
import net.minecraft.advancements.critereon.EntityFlagsPredicate;
import net.minecraft.advancements.critereon.EntityPredicate;
import net.minecraft.advancements.critereon.InventoryChangeTrigger;
import net.minecraft.advancements.critereon.ItemDurabilityTrigger;
import net.minecraft.advancements.critereon.ItemPredicate;
import net.minecraft.advancements.critereon.ItemUsedOnLocationTrigger;
import net.minecraft.advancements.critereon.KilledTrigger;
import net.minecraft.advancements.critereon.LocationPredicate;
import net.minecraft.advancements.critereon.LootTableTrigger;
import net.minecraft.advancements.critereon.MinMaxBounds;
import net.minecraft.advancements.critereon.MobEffectsPredicate;
import net.minecraft.advancements.critereon.PickedUpItemTrigger;
import net.minecraft.advancements.critereon.PlayerInteractTrigger;
import net.minecraft.advancements.critereon.PlayerTrigger;
import net.minecraft.advancements.critereon.StatePropertiesPredicate;
import net.minecraft.advancements.critereon.SummonedEntityTrigger;
import net.minecraft.advancements.critereon.TagPredicate;
import net.minecraft.core.HolderGetter;
import net.minecraft.core.HolderLookup;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.advancements.AdvancementSubProvider;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.DamageTypeTags;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.monster.piglin.PiglinAi;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.biome.MultiNoiseBiomeSourceParameterList;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.RespawnAnchorBlock;
import net.minecraft.world.level.levelgen.structure.BuiltinStructures;
import net.minecraft.world.level.storage.loot.BuiltInLootTables;
import net.minecraft.world.level.storage.loot.LootContext;
import net.minecraft.world.level.storage.loot.predicates.LootItemEntityPropertyCondition;
public class VanillaNetherAdvancements implements AdvancementSubProvider {
@Override
public void generate(HolderLookup.Provider p_256338_, Consumer<AdvancementHolder> p_249760_) {
HolderGetter<EntityType<?>> holdergetter = p_256338_.lookupOrThrow(Registries.ENTITY_TYPE);
HolderGetter<Item> holdergetter1 = p_256338_.lookupOrThrow(Registries.ITEM);
HolderGetter<Block> holdergetter2 = p_256338_.lookupOrThrow(Registries.BLOCK);
AdvancementHolder advancementholder = Advancement.Builder.advancement()
.display(
Blocks.RED_NETHER_BRICKS,
Component.translatable("advancements.nether.root.title"),
Component.translatable("advancements.nether.root.description"),
ResourceLocation.withDefaultNamespace("textures/gui/advancements/backgrounds/nether.png"),
AdvancementType.TASK,
false,
false,
false
)
.addCriterion("entered_nether", ChangeDimensionTrigger.TriggerInstance.changedDimensionTo(Level.NETHER))
.save(p_249760_, "nether/root");
AdvancementHolder advancementholder1 = Advancement.Builder.advancement()
.parent(advancementholder)
.display(
Items.FIRE_CHARGE,
Component.translatable("advancements.nether.return_to_sender.title"),
Component.translatable("advancements.nether.return_to_sender.description"),
null,
AdvancementType.CHALLENGE,
true,
true,
false
)
.rewards(AdvancementRewards.Builder.experience(50))
.addCriterion(
"killed_ghast",
KilledTrigger.TriggerInstance.playerKilledEntity(
EntityPredicate.Builder.entity().of(holdergetter, EntityType.GHAST),
DamageSourcePredicate.Builder.damageType()
.tag(TagPredicate.is(DamageTypeTags.IS_PROJECTILE))
.direct(EntityPredicate.Builder.entity().of(holdergetter, EntityType.FIREBALL))
)
)
.save(p_249760_, "nether/return_to_sender");
AdvancementHolder advancementholder2 = Advancement.Builder.advancement()
.parent(advancementholder)
.display(
Blocks.NETHER_BRICKS,
Component.translatable("advancements.nether.find_fortress.title"),
Component.translatable("advancements.nether.find_fortress.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion(
"fortress",
PlayerTrigger.TriggerInstance.located(
LocationPredicate.Builder.inStructure(p_256338_.lookupOrThrow(Registries.STRUCTURE).getOrThrow(BuiltinStructures.FORTRESS))
)
)
.save(p_249760_, "nether/find_fortress");
Advancement.Builder.advancement()
.parent(advancementholder)
.display(
Items.MAP,
Component.translatable("advancements.nether.fast_travel.title"),
Component.translatable("advancements.nether.fast_travel.description"),
null,
AdvancementType.CHALLENGE,
true,
true,
false
)
.rewards(AdvancementRewards.Builder.experience(100))
.addCriterion("travelled", DistanceTrigger.TriggerInstance.travelledThroughNether(DistancePredicate.horizontal(MinMaxBounds.Doubles.atLeast(7000.0))))
.save(p_249760_, "nether/fast_travel");
Advancement.Builder.advancement()
.parent(advancementholder1)
.display(
Items.GHAST_TEAR,
Component.translatable("advancements.nether.uneasy_alliance.title"),
Component.translatable("advancements.nether.uneasy_alliance.description"),
null,
AdvancementType.CHALLENGE,
true,
true,
false
)
.rewards(AdvancementRewards.Builder.experience(100))
.addCriterion(
"killed_ghast",
KilledTrigger.TriggerInstance.playerKilledEntity(
EntityPredicate.Builder.entity()
.of(holdergetter, EntityType.GHAST)
.located(LocationPredicate.Builder.inDimension(Level.OVERWORLD))
)
)
.save(p_249760_, "nether/uneasy_alliance");
AdvancementHolder advancementholder3 = Advancement.Builder.advancement()
.parent(advancementholder2)
.display(
Blocks.WITHER_SKELETON_SKULL,
Component.translatable("advancements.nether.get_wither_skull.title"),
Component.translatable("advancements.nether.get_wither_skull.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion("wither_skull", InventoryChangeTrigger.TriggerInstance.hasItems(Blocks.WITHER_SKELETON_SKULL))
.save(p_249760_, "nether/get_wither_skull");
AdvancementHolder advancementholder4 = Advancement.Builder.advancement()
.parent(advancementholder3)
.display(
Items.NETHER_STAR,
Component.translatable("advancements.nether.summon_wither.title"),
Component.translatable("advancements.nether.summon_wither.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion(
"summoned", SummonedEntityTrigger.TriggerInstance.summonedEntity(EntityPredicate.Builder.entity().of(holdergetter, EntityType.WITHER))
)
.save(p_249760_, "nether/summon_wither");
AdvancementHolder advancementholder5 = Advancement.Builder.advancement()
.parent(advancementholder2)
.display(
Items.BLAZE_ROD,
Component.translatable("advancements.nether.obtain_blaze_rod.title"),
Component.translatable("advancements.nether.obtain_blaze_rod.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion("blaze_rod", InventoryChangeTrigger.TriggerInstance.hasItems(Items.BLAZE_ROD))
.save(p_249760_, "nether/obtain_blaze_rod");
AdvancementHolder advancementholder6 = Advancement.Builder.advancement()
.parent(advancementholder4)
.display(
Blocks.BEACON,
Component.translatable("advancements.nether.create_beacon.title"),
Component.translatable("advancements.nether.create_beacon.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion("beacon", ConstructBeaconTrigger.TriggerInstance.constructedBeacon(MinMaxBounds.Ints.atLeast(1)))
.save(p_249760_, "nether/create_beacon");
Advancement.Builder.advancement()
.parent(advancementholder6)
.display(
Blocks.BEACON,
Component.translatable("advancements.nether.create_full_beacon.title"),
Component.translatable("advancements.nether.create_full_beacon.description"),
null,
AdvancementType.GOAL,
true,
true,
false
)
.addCriterion("beacon", ConstructBeaconTrigger.TriggerInstance.constructedBeacon(MinMaxBounds.Ints.exactly(4)))
.save(p_249760_, "nether/create_full_beacon");
AdvancementHolder advancementholder7 = Advancement.Builder.advancement()
.parent(advancementholder5)
.display(
Items.POTION,
Component.translatable("advancements.nether.brew_potion.title"),
Component.translatable("advancements.nether.brew_potion.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion("potion", BrewedPotionTrigger.TriggerInstance.brewedPotion())
.save(p_249760_, "nether/brew_potion");
AdvancementHolder advancementholder8 = Advancement.Builder.advancement()
.parent(advancementholder7)
.display(
Items.MILK_BUCKET,
Component.translatable("advancements.nether.all_potions.title"),
Component.translatable("advancements.nether.all_potions.description"),
null,
AdvancementType.CHALLENGE,
true,
true,
false
)
.rewards(AdvancementRewards.Builder.experience(100))
.addCriterion(
"all_effects",
EffectsChangedTrigger.TriggerInstance.hasEffects(
MobEffectsPredicate.Builder.effects()
.and(MobEffects.MOVEMENT_SPEED)
.and(MobEffects.MOVEMENT_SLOWDOWN)
.and(MobEffects.DAMAGE_BOOST)
.and(MobEffects.JUMP)
.and(MobEffects.REGENERATION)
.and(MobEffects.FIRE_RESISTANCE)
.and(MobEffects.WATER_BREATHING)
.and(MobEffects.INVISIBILITY)
.and(MobEffects.NIGHT_VISION)
.and(MobEffects.WEAKNESS)
.and(MobEffects.POISON)
.and(MobEffects.SLOW_FALLING)
.and(MobEffects.DAMAGE_RESISTANCE)
.and(MobEffects.OOZING)
.and(MobEffects.INFESTED)
.and(MobEffects.WIND_CHARGED)
.and(MobEffects.WEAVING)
)
)
.save(p_249760_, "nether/all_potions");
Advancement.Builder.advancement()
.parent(advancementholder8)
.display(
Items.BUCKET,
Component.translatable("advancements.nether.all_effects.title"),
Component.translatable("advancements.nether.all_effects.description"),
null,
AdvancementType.CHALLENGE,
true,
true,
true
)
.rewards(AdvancementRewards.Builder.experience(1000))
.addCriterion(
"all_effects",
EffectsChangedTrigger.TriggerInstance.hasEffects(
MobEffectsPredicate.Builder.effects()
.and(MobEffects.MOVEMENT_SPEED)
.and(MobEffects.MOVEMENT_SLOWDOWN)
.and(MobEffects.DAMAGE_BOOST)
.and(MobEffects.JUMP)
.and(MobEffects.REGENERATION)
.and(MobEffects.FIRE_RESISTANCE)
.and(MobEffects.WATER_BREATHING)
.and(MobEffects.INVISIBILITY)
.and(MobEffects.NIGHT_VISION)
.and(MobEffects.WEAKNESS)
.and(MobEffects.POISON)
.and(MobEffects.WITHER)
.and(MobEffects.DIG_SPEED)
.and(MobEffects.DIG_SLOWDOWN)
.and(MobEffects.LEVITATION)
.and(MobEffects.GLOWING)
.and(MobEffects.ABSORPTION)
.and(MobEffects.HUNGER)
.and(MobEffects.CONFUSION)
.and(MobEffects.DAMAGE_RESISTANCE)
.and(MobEffects.SLOW_FALLING)
.and(MobEffects.CONDUIT_POWER)
.and(MobEffects.DOLPHINS_GRACE)
.and(MobEffects.BLINDNESS)
.and(MobEffects.BAD_OMEN)
.and(MobEffects.HERO_OF_THE_VILLAGE)
.and(MobEffects.DARKNESS)
.and(MobEffects.OOZING)
.and(MobEffects.INFESTED)
.and(MobEffects.WIND_CHARGED)
.and(MobEffects.WEAVING)
.and(MobEffects.TRIAL_OMEN)
.and(MobEffects.RAID_OMEN)
)
)
.save(p_249760_, "nether/all_effects");
AdvancementHolder advancementholder9 = Advancement.Builder.advancement()
.parent(advancementholder)
.display(
Items.ANCIENT_DEBRIS,
Component.translatable("advancements.nether.obtain_ancient_debris.title"),
Component.translatable("advancements.nether.obtain_ancient_debris.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion("ancient_debris", InventoryChangeTrigger.TriggerInstance.hasItems(Items.ANCIENT_DEBRIS))
.save(p_249760_, "nether/obtain_ancient_debris");
Advancement.Builder.advancement()
.parent(advancementholder9)
.display(
Items.NETHERITE_CHESTPLATE,
Component.translatable("advancements.nether.netherite_armor.title"),
Component.translatable("advancements.nether.netherite_armor.description"),
null,
AdvancementType.CHALLENGE,
true,
true,
false
)
.rewards(AdvancementRewards.Builder.experience(100))
.addCriterion("netherite_armor", InventoryChangeTrigger.TriggerInstance.hasItems(Items.NETHERITE_HELMET, Items.NETHERITE_CHESTPLATE, Items.NETHERITE_LEGGINGS, Items.NETHERITE_BOOTS))
.save(p_249760_, "nether/netherite_armor");
Advancement.Builder.advancement()
.parent(advancementholder9)
.display(
Items.LODESTONE,
Component.translatable("advancements.nether.use_lodestone.title"),
Component.translatable("advancements.nether.use_lodestone.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion(
"use_lodestone",
ItemUsedOnLocationTrigger.TriggerInstance.itemUsedOnBlock(
LocationPredicate.Builder.location().setBlock(BlockPredicate.Builder.block().of(holdergetter2, Blocks.LODESTONE)),
ItemPredicate.Builder.item().of(holdergetter1, Items.COMPASS)
)
)
.save(p_249760_, "nether/use_lodestone");
AdvancementHolder advancementholder10 = Advancement.Builder.advancement()
.parent(advancementholder)
.display(
Items.CRYING_OBSIDIAN,
Component.translatable("advancements.nether.obtain_crying_obsidian.title"),
Component.translatable("advancements.nether.obtain_crying_obsidian.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion("crying_obsidian", InventoryChangeTrigger.TriggerInstance.hasItems(Items.CRYING_OBSIDIAN))
.save(p_249760_, "nether/obtain_crying_obsidian");
Advancement.Builder.advancement()
.parent(advancementholder10)
.display(
Items.RESPAWN_ANCHOR,
Component.translatable("advancements.nether.charge_respawn_anchor.title"),
Component.translatable("advancements.nether.charge_respawn_anchor.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion(
"charge_respawn_anchor",
ItemUsedOnLocationTrigger.TriggerInstance.itemUsedOnBlock(
LocationPredicate.Builder.location()
.setBlock(
BlockPredicate.Builder.block()
.of(holdergetter2, Blocks.RESPAWN_ANCHOR)
.setProperties(StatePropertiesPredicate.Builder.properties().hasProperty(RespawnAnchorBlock.CHARGE, 4))
),
ItemPredicate.Builder.item().of(holdergetter1, Blocks.GLOWSTONE)
)
)
.save(p_249760_, "nether/charge_respawn_anchor");
AdvancementHolder advancementholder11 = Advancement.Builder.advancement()
.parent(advancementholder)
.display(
Items.WARPED_FUNGUS_ON_A_STICK,
Component.translatable("advancements.nether.ride_strider.title"),
Component.translatable("advancements.nether.ride_strider.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion(
"used_warped_fungus_on_a_stick",
ItemDurabilityTrigger.TriggerInstance.changedDurability(
Optional.of(
EntityPredicate.wrap(
EntityPredicate.Builder.entity().vehicle(EntityPredicate.Builder.entity().of(holdergetter, EntityType.STRIDER))
)
),
Optional.of(ItemPredicate.Builder.item().of(holdergetter1, Items.WARPED_FUNGUS_ON_A_STICK).build()),
MinMaxBounds.Ints.ANY
)
)
.save(p_249760_, "nether/ride_strider");
Advancement.Builder.advancement()
.parent(advancementholder11)
.display(
Items.WARPED_FUNGUS_ON_A_STICK,
Component.translatable("advancements.nether.ride_strider_in_overworld_lava.title"),
Component.translatable("advancements.nether.ride_strider_in_overworld_lava.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion(
"ride_entity_distance",
DistanceTrigger.TriggerInstance.rideEntityInLava(
EntityPredicate.Builder.entity()
.located(LocationPredicate.Builder.inDimension(Level.OVERWORLD))
.vehicle(EntityPredicate.Builder.entity().of(holdergetter, EntityType.STRIDER)),
DistancePredicate.horizontal(MinMaxBounds.Doubles.atLeast(50.0))
)
)
.save(p_249760_, "nether/ride_strider_in_overworld_lava");
VanillaAdventureAdvancements.addBiomes(
Advancement.Builder.advancement(), p_256338_, MultiNoiseBiomeSourceParameterList.Preset.NETHER.usedBiomes().toList()
)
.parent(advancementholder11)
.display(
Items.NETHERITE_BOOTS,
Component.translatable("advancements.nether.explore_nether.title"),
Component.translatable("advancements.nether.explore_nether.description"),
null,
AdvancementType.CHALLENGE,
true,
true,
false
)
.rewards(AdvancementRewards.Builder.experience(500))
.save(p_249760_, "nether/explore_nether");
AdvancementHolder advancementholder12 = Advancement.Builder.advancement()
.parent(advancementholder)
.display(
Items.POLISHED_BLACKSTONE_BRICKS,
Component.translatable("advancements.nether.find_bastion.title"),
Component.translatable("advancements.nether.find_bastion.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion(
"bastion",
PlayerTrigger.TriggerInstance.located(
LocationPredicate.Builder.inStructure(p_256338_.lookupOrThrow(Registries.STRUCTURE).getOrThrow(BuiltinStructures.BASTION_REMNANT))
)
)
.save(p_249760_, "nether/find_bastion");
Advancement.Builder.advancement()
.parent(advancementholder12)
.display(
Blocks.CHEST,
Component.translatable("advancements.nether.loot_bastion.title"),
Component.translatable("advancements.nether.loot_bastion.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.requirements(AdvancementRequirements.Strategy.OR)
.addCriterion("loot_bastion_other", LootTableTrigger.TriggerInstance.lootTableUsed(BuiltInLootTables.BASTION_OTHER))
.addCriterion("loot_bastion_treasure", LootTableTrigger.TriggerInstance.lootTableUsed(BuiltInLootTables.BASTION_TREASURE))
.addCriterion("loot_bastion_hoglin_stable", LootTableTrigger.TriggerInstance.lootTableUsed(BuiltInLootTables.BASTION_HOGLIN_STABLE))
.addCriterion("loot_bastion_bridge", LootTableTrigger.TriggerInstance.lootTableUsed(BuiltInLootTables.BASTION_BRIDGE))
.save(p_249760_, "nether/loot_bastion");
ContextAwarePredicate contextawarepredicate = ContextAwarePredicate.create(
LootItemEntityPropertyCondition.hasProperties(
LootContext.EntityTarget.THIS,
EntityPredicate.Builder.entity()
.equipment(
EntityEquipmentPredicate.Builder.equipment().head(ItemPredicate.Builder.item().of(holdergetter1, ItemTags.PIGLIN_SAFE_ARMOR))
)
)
.invert()
.build(),
LootItemEntityPropertyCondition.hasProperties(
LootContext.EntityTarget.THIS,
EntityPredicate.Builder.entity()
.equipment(
EntityEquipmentPredicate.Builder.equipment().chest(ItemPredicate.Builder.item().of(holdergetter1, ItemTags.PIGLIN_SAFE_ARMOR))
)
)
.invert()
.build(),
LootItemEntityPropertyCondition.hasProperties(
LootContext.EntityTarget.THIS,
EntityPredicate.Builder.entity()
.equipment(
EntityEquipmentPredicate.Builder.equipment().legs(ItemPredicate.Builder.item().of(holdergetter1, ItemTags.PIGLIN_SAFE_ARMOR))
)
)
.invert()
.build(),
LootItemEntityPropertyCondition.hasProperties(
LootContext.EntityTarget.THIS,
EntityPredicate.Builder.entity()
.equipment(
EntityEquipmentPredicate.Builder.equipment().feet(ItemPredicate.Builder.item().of(holdergetter1, ItemTags.PIGLIN_SAFE_ARMOR))
)
)
.invert()
.build()
);
Advancement.Builder.advancement()
.parent(advancementholder)
.requirements(AdvancementRequirements.Strategy.OR)
.display(
Items.GOLD_INGOT,
Component.translatable("advancements.nether.distract_piglin.title"),
Component.translatable("advancements.nether.distract_piglin.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion(
"distract_piglin",
PickedUpItemTrigger.TriggerInstance.thrownItemPickedUpByEntity(
contextawarepredicate,
Optional.of(ItemPredicate.Builder.item().of(holdergetter1, ItemTags.PIGLIN_LOVED).build()),
Optional.of(
EntityPredicate.wrap(
EntityPredicate.Builder.entity()
.of(holdergetter, EntityType.PIGLIN)
.flags(EntityFlagsPredicate.Builder.flags().setIsBaby(false))
)
)
)
)
.addCriterion(
"distract_piglin_directly",
PlayerInteractTrigger.TriggerInstance.itemUsedOnEntity(
Optional.of(contextawarepredicate),
ItemPredicate.Builder.item().of(holdergetter1, PiglinAi.BARTERING_ITEM),
Optional.of(
EntityPredicate.wrap(
EntityPredicate.Builder.entity()
.of(holdergetter, EntityType.PIGLIN)
.flags(EntityFlagsPredicate.Builder.flags().setIsBaby(false))
)
)
)
)
.save(p_249760_, "nether/distract_piglin");
}
}