fix: Stop portals in The End generating end gateway strucutres when used #222
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If an entity touches an end gateway block in The End (or a world like it) which has no exit location set, the game will generate a new end gateway structure at the same angle relative to and 1024 or so blocks away from the origin (i.e. around the inner edge of the outer islands). Using a vane portal in an End world therefore creates a tower of gateways that grows each time the portal is used. This happens before Paper/Bukkit Entity/PlayerTeleportEndGatewayEvents are fired, so the existing cancelling of them doesn't prevent this. All the relevant logic is in
net.minecraft.world.level.block.entity.TheEndGatewayBlockEntity.teleportEntity
.Setting an exit location for end gateway blocks in vane portals is enough to prevent this behaviour. Any location will do (I picked the portal's spawn since it was handy, and means at least one fewer allocation), since the teleport events being cancelled will prevent anything going there anyway.