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:
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
Observe your experience.
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
relates to 1
Attachments
Comments 9
Literally all challenge advancements except these 2 new ones give experience, do your research before making baseless statements mate.
See MC-249935 for that issue. 🙂
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.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
Not true, some do, mainly challenge advancements.