You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
+ if (this.awaitingPositionFromClient != null || this.player.isImmobile() || rootVehicle.isRemoved()) {
this kinda confused me until i realized its paper logic bug.
...
//ServerGamePacketListenerImpl.handleMoveVehicle()
} elseif (!this.updateAwaitingTeleport() && this.player.hasClientLoaded()) {
EntityrootVehicle = this.player.getRootVehicle();
// Paper start - Don't allow vehicle movement from players while teleportingif (this.awaitingPositionFromClient != null || this.player.isImmobile() || rootVehicle.isRemoved()) { // ensuring awaitingPositionFromClient is nullreturn;
}
// Paper end - Don't allow vehicle movement from players while teleporting
...
as you can see we are ensuring awaitingPositionFromClient is null, but it was already just checked inside this.updateAwaitingTeleport(), which will only return false if awaitingPositionFromClient is null
privatebooleanupdateAwaitingTeleport() {
if (this.awaitingPositionFromClient != null) {
if (false && this.tickCount - this.awaitingTeleportTime > 20) { // Paper - this will greatly screw with clients with > 1000ms RTTthis.awaitingTeleportTime = this.tickCount;
this.teleport(
this.awaitingPositionFromClient.x,
this.awaitingPositionFromClient.y,
this.awaitingPositionFromClient.z,
this.player.getYRot(),
this.player.getXRot()
);
}
this.allowedPlayerTicks = 20; // CraftBukkitreturntrue;
} else {
this.awaitingTeleportTime = this.tickCount;
returnfalse; // returns false here, right after this.awaitingPositionFromClient == null
}
}
...
//ServerGamePacketListenerImpl.handleMoveVehicle()
} elseif (!this.updateAwaitingTeleport() && this.player.hasClientLoaded()) { // needs to return false in order to proceedEntityrootVehicle = this.player.getRootVehicle();
...
Expected behavior
Paper/paper-server/patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch
Line 179 in daddcf6
this kinda confused me until i realized its paper logic bug.
as you can see we are ensuring awaitingPositionFromClient is null, but it was already just checked inside this.updateAwaitingTeleport(), which will only return false if awaitingPositionFromClient is null
Paper version
daddcf6
The text was updated successfully, but these errors were encountered: