Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upProper respawn packets on dimension travel #3351
Conversation
This was referenced Aug 27, 2016
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
SafwatHalaby
Aug 28, 2016
Member
This has been tested ingame with all possible teleport permutations (nether>nether, nether>overworld, etc.), I teleported both via nether portals and the Essentials /portal command (total: 9 * 2 tests). All packets were sent as expected, (end portals weren't tested).
|
This has been tested ingame with all possible teleport permutations (nether>nether, nether>overworld, etc.), I teleported both via nether portals and the Essentials |
SafwatHalaby
added
the
priority/important
label
Aug 29, 2016
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
madmaxoft
Aug 29, 2016
Member
I'm considering whether the check for the same dimension should be implemented in cClientHandle, as you've done it, or in cProtocol descendants. After all, it is a thing of the protocol; if the client ever fixes the "bug" with travelling to the same dimension, we will no longer need the check for that version of the protocol. On the other hand, it means copying the code over to each new cProtocol.
|
I'm considering whether the check for the same dimension should be implemented in |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
SafwatHalaby
Aug 29, 2016
Member
As of now, all protocol versions have this bug. We can trivially move this to cProtocol and duplicate it if ever needed.
|
As of now, all protocol versions have this bug. We can trivially move this to |
SafwatHalaby commentedAug 27, 2016
•
edited
Closes #2547
Closes #2405
Closes #3352
Replaces #3350
Replaces #3114
Completes the "Stable world travel" milestone :)
Minecraft clients do not like respawning to the same dimension, unless the player dies. This PR takes this into account when teleporting between dimensions. If one is teleporting from a world of dimension A to a world of dimension A, a dummy respawn packet of some dimension B is sent first, and the real respawn packet of dimension A is sent afterwards.
Also, the cEntity teleportation code used to falsely assume that a linked world's dimension always has correspondance to the portal type and the current world. For instance, it assumed that when stepping into a Nether portal from the Overworld, one always ends up in a Nether. This caused the wrong respawn packets to be sent. The PR fixes this as well.