From 0523f266138c8b55c683cedb7dd507c4273369e1 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sat, 23 Sep 2017 12:49:46 +0100 Subject: [PATCH] Send forced movement when getting bad movements after teleport, fixes AlwaysSpawn-type plugins it's mostly harmless to send it here anyway --- src/pocketmine/Player.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 5ab6ff558..34bf931bb 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -2108,7 +2108,8 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ $newPos = $packet->position->subtract(0, $this->baseOffset, 0); if($this->isTeleporting and $newPos->distanceSquared($this) > 1){ //Tolerate up to 1 block to avoid problems with client-sided physics when spawning in blocks - $this->server->getLogger()->debug("Ignoring outdated pre-teleport movement from " . $this->getName() . ", received " . $newPos . ", expected " . $this->asVector3()); + $this->sendPosition($this, null, null, MovePlayerPacket::MODE_RESET); + $this->server->getLogger()->debug("Got outdated pre-teleport movement from " . $this->getName() . ", received " . $newPos . ", expected " . $this->asVector3()); //Still getting movements from before teleport, ignore them }elseif((!$this->isAlive() or $this->spawned !== true) and $newPos->distanceSquared($this) > 0.01){ $this->sendPosition($this, null, null, MovePlayerPacket::MODE_RESET);