If you create a custom advancement that is supposed to trigger using the location trigger when you find a structure that uses internal structure-block structures to generate (i.e. any structure added in 1.9 or later, or an End City, Igloo, Woodland Mansion, Shipwreck, Buried Treasure or an Ocean Ruin), in a similar manner to vanilla advancements "A Terrible Fortress" or "Eye Spy", well, it is inconsistent as to whether or not it will actually give you the advancement when you enter such structure.
While the advancement will show up in the advancement menu, when you enter the structure in question it might not actually work.
Meanwhile structures added prior to 1.9 (like Nether Fortresses, Strongholds, Pyramids and Jungle Temples) always work seamlessly.
1.9 was the version when they started making new structures added to the game use structure-block structures to generate, and due to this strange pattern it makes me think the issue has something to do with this.
This means "The City at the End of the Game" advancement is bugged, and any new advancement created for these new structures also works inconsistently.
Code for the criteria component:
"criteria": {
"ocean_ruin": {
"trigger": "minecraft:location",
"conditions": {
"feature": "ocean_ruin"
}
}
}
Linked issues
is duplicated by 1
Attachments
Comments 17
I've done a bit more digging into this problem, and I've discovered that there is a chance the advancement might work. In my advancements datapack in a world with my friend, my friend got the advancement for finding a shipwreck without any commands when he entered a shipwreck, but it was not the first shipwreck he had found in the world, and I found many shipwrecks myself but never got it.
However, the problem is not restricted to Shipwrecks, Ocean Ruins and Buried Treasure alone. It also seems to happen with Woodland Mansions, Igloos, and End Cities, but not with some other structures like Nether Fortresses, Strongholds, or Jungle Temples. What do all these structures where it doesn't always work have in common? They were added in 1.9 or later, and it was in 1.9 that they started using structures to generate structures
So there's me thinking this issue is connected somehow...
It even affects vanilla advancements. "The City At The End Of The Game" is a vanilla advancement that requires you to find an end city. I just created a new world in 1.13-pre10 without any custom advancements (so just vanilla advancements) and went to find an end city. Guess what? When I enter an end city it doesn't give me it.
I have gotten "The City At The End Of The Game" before properly but the bug is that it doesn't always work.
Note: already generated structures can't be fixed, only new structures will have correct bounding boxes. Also, couldn't find anything wrong with End Cities and Woodland Mansions.
@unknown I can consistently reproduce the issue for End Cities by trying to get the advancement in a City that has already been generated and/or the advancement triggered by someone else. This also applies for 'The City at the End of the Game', not just custom advancements.
"already generated structures can't be fixed". Sorry, but we have no easy way to re-generate structure info without resetting whole chunk.
Maybe it's already fixed as a side effect on your branch, but you said you couldn't find anything wrong with End Cities. Those were just reproduction steps for their issue in 1.14 if you wanted to test it further.
EDIT: Well, not entirely sure what 1.14 version that world was generated on, made a fresh one now and also can't reproduce it for End Cities.
End Cities are covered by https://bugs.mojang.com/browse/MC-118543 and I couldn't reproduce that one. What I meant is that in this issue, bounding boxes for all parts were already correctly set, even it 1.13.
It does not work with buried treasure either.