def getPlayerTag(self, player="Player"):
        '''
        Gets the NBT data for the specified player
        
        :param player: The UUID of the player
        :type player: str
        :return: The NBT data for the player
        :rtype: pymclevel.nbt.TAG_Compound
        '''
        if player == "Player":
            if player in self.root_tag["Data"]:
                # single-player world
                return self.root_tag["Data"]["Player"]
            raise PlayerNotFound(player)
        else:
            playerFilePath = self.getPlayerPath(player)
            playerTag = self.playerTagCache.get(playerFilePath)
            if playerTag is None:
                if os.path.exists(playerFilePath):
                    playerTag = nbt.load(playerFilePath)
                    self.playerTagCache[playerFilePath] = playerTag
                else:
                    raise PlayerNotFound(player)
            return playerTag

        Gets the NBT data for the specified player
        
        :param player: The UUID of the player
        :type player: str
        :return: The NBT data for the player
        :rtype: pymclevel.nbt.TAG_Compound
        
pymclevel/infiniteworld.py