mojira.dev
MC-199994

Advancement "Free the End" is only granted to one player

When several players are working together to defeat the Ender Dragon, only the player who kills the Ender Dragon is granted the "Free the End" advancement. One player (Player A) may deplete the Ender Dragon's health to one point, but if another player (Player B) takes that last point, only Player B is granted the advancement.

Comments 4

Not only in Realms, this issue can be reproduced in the server too

Can confirm in 1.20.2. Since it’s still unresolved, I assume it’s also a thing on 1.20.2-.4.

Let me propose a solution; The Ender Dragon gets a new NBT data list consisting of pairs of player UUIDs and DateTime of the last time that player dealt damage to the dragon. Each time any player damages the existing Ender Dragon entity within the lifetime of the Ender Dragon, that player’s UUID with current DT is added to the NBT list OR the DT is updated if the UUID is already there.

Upon the death of the Ender Dragon entity, there could be several conditions for the achievement to be triggered for individual players, to make the advancement distribution fair; Player only gets that advancement if:
- The player is currently in the same dimension as the Ender Dragon at the moment of the Dragon’s death.
- The player has dealt damage to the dragon in some recent time scope, which could be up to the developers to decide. I would suggest a window of 1 hour.

These two conditions should include only players that are actively at the moment participating in the fight, regardless of how much damage you have dealt to the dragon, while excluding players who are not participating at all (regardless of the dimension they are in) and players who may have hit the Ender Dragon once and left the server or the dimension in order to attempt to get “free” advancement on the account of other players actually fighting the dragon.

Ralph Gifford

(Unassigned)

Confirmed

Advancements

advancement-trigger, ender-dragon-death, multiplayer

1.16.3, 1.20.1

Retrieved