From 854f8515250ca41e7aff610491a9f20d4fa67d5c Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sun, 20 Jan 2019 12:30:09 +0000 Subject: [PATCH 1/3] ExperienceOrb: don't follow players in other worlds --- src/pocketmine/entity/object/ExperienceOrb.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pocketmine/entity/object/ExperienceOrb.php b/src/pocketmine/entity/object/ExperienceOrb.php index f830bfba0..7c9e8febc 100644 --- a/src/pocketmine/entity/object/ExperienceOrb.php +++ b/src/pocketmine/entity/object/ExperienceOrb.php @@ -147,7 +147,7 @@ class ExperienceOrb extends Entity{ return null; } - $entity = $this->server->findEntity($this->targetPlayerRuntimeId); + $entity = $this->level->getEntity($this->targetPlayerRuntimeId); if($entity instanceof Human){ return $entity; } From a27c9409f11adbc45f54f50a634700b903fab1dd Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sun, 20 Jan 2019 12:30:24 +0000 Subject: [PATCH 2/3] ExperienceOrb: fixed wrong condition --- src/pocketmine/entity/object/ExperienceOrb.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pocketmine/entity/object/ExperienceOrb.php b/src/pocketmine/entity/object/ExperienceOrb.php index 7c9e8febc..3fa308b60 100644 --- a/src/pocketmine/entity/object/ExperienceOrb.php +++ b/src/pocketmine/entity/object/ExperienceOrb.php @@ -156,7 +156,7 @@ class ExperienceOrb extends Entity{ } public function setTargetPlayer(?Human $player) : void{ - $this->targetPlayerRuntimeId = $player ? $player->getId() : null; + $this->targetPlayerRuntimeId = $player !== null ? $player->getId() : null; } public function entityBaseTick(int $tickDiff = 1) : bool{ From 47321114ebd5992bc8b2d4c7b7ea66371a493fd6 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sun, 20 Jan 2019 15:51:29 +0000 Subject: [PATCH 3/3] login: allow 60 seconds clock drift on login JWT can everyone please just use NTP already? --- src/pocketmine/network/mcpe/VerifyLoginTask.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/network/mcpe/VerifyLoginTask.php b/src/pocketmine/network/mcpe/VerifyLoginTask.php index 013f5e38a..f4cdaf5ea 100644 --- a/src/pocketmine/network/mcpe/VerifyLoginTask.php +++ b/src/pocketmine/network/mcpe/VerifyLoginTask.php @@ -45,6 +45,8 @@ class VerifyLoginTask extends AsyncTask{ public const MOJANG_ROOT_PUBLIC_KEY = "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE8ELkixyLcwlZryUQcu1TvPOmI2B7vX83ndnWRUaXm74wFfa5f/lwQNTfrLVHa2PmenpGI6JhIMUJaWZrjmMj90NoKNFSNBuKdm8rYiXsfaz3K36x/1U26HpG0ZxK/V1V"; + private const CLOCK_DRIFT_MAX = 60; + /** @var LoginPacket */ private $packet; @@ -144,11 +146,11 @@ class VerifyLoginTask extends AsyncTask{ $claims = json_decode(base64_decode(strtr($payloadB64, '-_', '+/'), true), true); $time = time(); - if(isset($claims["nbf"]) and $claims["nbf"] > $time){ + if(isset($claims["nbf"]) and $claims["nbf"] > $time + self::CLOCK_DRIFT_MAX){ throw new VerifyLoginException("%pocketmine.disconnect.invalidSession.tooEarly"); } - if(isset($claims["exp"]) and $claims["exp"] < $time){ + if(isset($claims["exp"]) and $claims["exp"] < $time - self::CLOCK_DRIFT_MAX){ throw new VerifyLoginException("%pocketmine.disconnect.invalidSession.tooLate"); }