From dda8c6cc8f04d917688d003ebe6c4b2b62cd94af Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sun, 26 Mar 2017 13:20:46 +0100 Subject: [PATCH] Removed a condition that's been useless almost since the beginning of PocketMine This condition has been useless since before NBT was introduced to PocketMine. If there was a use for it, it should have been placed BEFORE anything attempted to read from the NBT. However, Server now handles bad data automatically now, so Server->getOfflinePlayerData() will never _not_ return a CompoundTag. Hence I've added a CompoundTag type-hint. --- src/pocketmine/Player.php | 7 +------ src/pocketmine/Server.php | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index a6aaed00e..b8d8988c6 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -1751,6 +1751,7 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade } $nbt = $this->server->getOfflinePlayerData($this->username); + $this->playedBefore = ($nbt["lastPlayed"] - $nbt["firstPlayed"]) > 1; // microtime(true) - microtime(true) may have less than one millisecond difference if(!isset($nbt->NameTag)){ $nbt->NameTag = new StringTag("NameTag", $this->username); @@ -1775,12 +1776,6 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade $this->setLevel($level); } - if(!($nbt instanceof CompoundTag)){ - $this->close($this->getLeaveMessage(), "Invalid data"); - - return; - } - $this->achievements = []; /** @var ByteTag $achievement */ diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index a882b9b97..bcc61a87a 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -701,7 +701,7 @@ class Server{ * * @return CompoundTag */ - public function getOfflinePlayerData($name){ + public function getOfflinePlayerData($name) : CompoundTag{ $name = strtolower($name); $path = $this->getDataPath() . "players/"; if($this->shouldSavePlayerData()){