diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 4a2fb14cd..85265c25a 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -1152,6 +1152,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ $pk->teleport = true; $this->directDataPacket($pk); $this->forceMovement = new Vector3($from->x, $from->y, $from->z); + $this->newPosition = null; }else{ $this->forceMovement = null; if($this->nextChunkOrderRun > 20){ diff --git a/src/pocketmine/entity/Entity.php b/src/pocketmine/entity/Entity.php index c55c183c0..80209d80c 100644 --- a/src/pocketmine/entity/Entity.php +++ b/src/pocketmine/entity/Entity.php @@ -955,16 +955,14 @@ abstract class Entity extends Location implements Metadatable{ }else{ if($this instanceof Player){ - if(($this->onGround and $movY != 0) or (!$this->onGround and $movY < 0)){ + if(!$this->onGround or $movY != 0){ $bb = clone $this->boundingBox; - $bb->maxY = $bb->minY + 0.5; + $bb->maxY = $bb->minY + 1; if(count($this->level->getCollisionBlocks($bb->expand(0.01, 0.01, 0.01))) > 0){ - $isColliding = true; + $this->onGround = true; }else{ - $isColliding = false; + $this->onGround = false; } - - $this->onGround = ($movY <= 0 and $isColliding); } }else{ $this->onGround = ($movY != $dy and $movY < 0); diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index a9c5535c1..309c3e40e 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -1105,7 +1105,7 @@ class Level implements ChunkManager, Metadatable{ } } - if(!($player instanceof Player) or $player->isSurvival() === 0){ + if(!($player instanceof Player) or $player->isSurvival()){ foreach($drops as $drop){ if($drop[2] > 0){ $this->dropItem($vector->add(0.5, 0.5, 0.5), Item::get(...$drop));