mojira.dev
MC-249782

The "It Spreads" and "With Our Powers Combined!" advancements don't grant experience upon completion

The Bug:

The "It Spreads" and "With Our Powers Combined!" advancements don't grant experience upon completion.

All challenge advancements grant experience upon completion, but the "It Spreads" and "With Our Powers Combined!" advancements don't.

Steps to Reproduce:

  1. Switch to survival mode and grant yourself the "It Spreads" and "With Our Powers Combined!" advancements by using the commands provided below.

    /advancement grant @s only minecraft:adventure/kill_mob_near_sculk_catalyst
    /advancement grant @s only minecraft:husbandry/froglights
  2. Observe your experience.

  3. Take note as to whether or not the "It Spreads" and "With Our Powers Combined!" advancements don't grant experience upon completion.

Observed Behavior:

Experience isn't granted upon completion of any of the advancements.

Expected Behavior:

Experience would be granted upon completion of each of the advancements.

Linked issues

Attachments

Comments 9

Not true, some do, mainly challenge advancements.

Literally all challenge advancements except these 2 new ones give experience, do your research before making baseless statements mate.

Confirmed for 22w19a, also affects "Birthday Song."

I can confirm this behavior in 1.19 Pre-release 3. Here's a code analysis regarding this issue.

Code Analysis:

The following is based on a decompiled version of Minecraft 1.19 Pre-release 3 using Mojang mappings.

net.minecraft.data.advancements.HusbandryAdvancements.java

public class HusbandryAdvancements implements Consumer<Consumer<Advancement>> {
   ...
   @Override
   public void accept(Consumer<Advancement> consumer) {
      ...       Advancement.Builder.advancement().parent(advancement11).display(Items.VERDANT_FROGLIGHT, (Component)Component.translatable("advancements.husbandry.froglights.title"), (Component)Component.translatable("advancements.husbandry.froglights.description"), null, FrameType.CHALLENGE, true, true, false).addCriterion("froglights", InventoryChangeTrigger.TriggerInstance.hasItems(Items.OCHRE_FROGLIGHT, Items.PEARLESCENT_FROGLIGHT, Items.VERDANT_FROGLIGHT)).save(consumer, "husbandry/froglights");
      ...

net.minecraft.data.advancements.AdventureAdvancements.java

public class AdventureAdvancements implements Consumer<Consumer<Advancement>> {
   ...
   @Override
   public void accept(Consumer<Advancement> consumer) {
      ...
      Advancement.Builder.advancement().parent(advancement4).display(Blocks.SCULK_CATALYST, (Component)Component.translatable("advancements.adventure.kill_mob_near_sculk_catalyst.title"), (Component)Component.translatable("advancements.adventure.kill_mob_near_sculk_catalyst.description"), null, FrameType.CHALLENGE, true, true, false).addCriterion("kill_mob_near_sculk_catalyst", KilledTrigger.TriggerInstance.playerKilledEntityNearSculkCatalyst()).save(consumer, "adventure/kill_mob_near_sculk_catalyst");
      ...

If we look at the above classes, we can see that the rewards() method (a method responsible for awarding experience to the player upon completing an advancement) is never called throughout these pieces of code for both the "It Spreads" and "With Our Powers Combined!" advancements, resulting in these advancements granting no experience upon being completed.

Can confirm in 1.19.

Can confirm in 1.19.1.

Can confirm in 1.19.2. You can use the following commands to reproduce this issue.

/advancement grant @s only minecraft:adventure/kill_mob_near_sculk_catalyst
/advancement grant @s only minecraft:husbandry/froglights

Stay strong SeaOfPixels, one day they'll give it experience... I've been watching this post for the past 9 months.

SeaOfPixels

(Unassigned)

Confirmed

Gameplay

Low

Advancements

22w13a, 22w14a, 22w15a, 22w17a, 22w19a, ..., 1.21 Release Candidate 1, 24w44a, 1.21.3, 1.21.5, 25w19a

Retrieved