Structures outside the worldborder are not found when trying to locate them
Expected behavior
Vanilla behaviour is that if you use /locates structure minecraft:stronghold or throw an Eye of Ender, if the stronghold isn't generated yet, the lookup still successfully returns the structure/the Eye of Ender still flies towards the stronghold
Observed/Actual behavior
In Paper, throwing an Eye of Ender or trying to locate a structure that hasn't been generated yet and is outside the worldborder will not work. Using the command /locate structure minecraft:stronghold returns Could not find a structure of type "minecraft:stronghold" nearby, throwing an enderpearl just doesn't work
Steps/models to reproduce
- Generate a new world
- Center the worldborder to your position (
/worldborder center ~ ~) and set it to 50 (/worldborder set 50) - Try to throw an Eye of Ender or use
/locate structure minecraft:stronghold
Plugin and Datapack List
None/Vanilla
Paper version
1.19.2 #119
Other
Seems like this issue is introduced here: https://github.com/PaperMC/Paper/blob/master/patches/server/0114-Bound-Treasure-Maps-to-World-Border.patch#L44
that's the entire intent of that patch, not sure this is an "issue" as much as maybe it would be better configurable
The issue is that the patch makes sense for treasure maps, where it will just choose the next best available one inside the border, since there are so many hidden treasueres. With a stronghold it usually can't just go to the next one, since other ones would be even further out. On idea I had was to just ignore strongholds in that patch or just make it target treasure maps instead
I fail to understand the merit of being taken in the direction of a structure you can't actually access
In that specific use case it's because players are trying to go there while the border slowly expands. My bigger problem with that is that you just randomly can't use an Eye of Ender, without any indication as to why not. Maybe we could have an action bar message telling you that no stronghold has been found?
such a use-case is niche, and so, IMHO, the best option there would be for a config option, no point forcing everybody else to take a hit
as for a message, that would ideally come from vanilla or something which can actually deal with localisation, not sure
Marking this one as accepted, as it is a valid issue (even though it is a niche one) under the pretext that resolving this should not be done by dropping the patch, but rather by expanding it with a configuration option. With how niche of a use-case this is I believe the logic should be enabled by default to maximise performance.