Affects Version/s: Minecraft 1.12.2, Minecraft 17w50a, Minecraft 18w22c, Minecraft 1.13-pre1, Minecraft 1.13-pre2, Minecraft 1.13-pre3, Minecraft 1.13-pre4, Minecraft 1.13-pre5, Minecraft 1.13-pre6, Minecraft 1.13-pre8, Minecraft 1.13, Minecraft 18w30b, Minecraft 18w32a, Minecraft 1.13.1-pre1, Minecraft 1.13.1-pre2, Minecraft 1.13.1, Minecraft 1.13.2, Minecraft 18w48a, Minecraft 18w48b, Minecraft 18w49a, Minecraft 18w50a, Minecraft 1.14 Pre-Release 2, Minecraft 1.14 Pre-Release 3, Minecraft 1.14.4 Pre-Release 2, 1.15.2, 20w10a, 20w51a, 21w03a, 1.16.5, 21w05b, 21w08b, 21w13a, 21w17a, 1.17.1
Fix Version/s: None
The NetHandlerPlayServer.processPlayer (MCP name) function checks if the player's bounding box is intersecting any blocks, and if it is, reverts the player's position to the old one.
However, this check is done even if the player has been teleported by a portal block such as the end portal, which can lead to the following problem:
- A player somehow sends a move packet that places them halfway between an end portal block and an end portal frame block
- Even though the move is illegal, the end portal's collision function gets called and the player is teleported into the end (Bug 1)
- The collision checks whether the player's move was invalid and reverts the player's position, but not dimension change (Bug 2)
- The player is dropped into the end at their previous position, likely causing them to fall into the void and die
Doing this check before block collision functions are called (or at least also cancelling the dimension change) would solve the problem.
- Use the following commands to make you intersect with a block and stand in front of an end portal
- Walk forward
→ You enter the end but at your original position instead of on the platform