getFriendMessageHistory(friendSteamId, options, callback) {
		if (typeof options == 'function') {
			callback = options;
			options = {};
		}

		options = options || {};

		return StdLib.Promises.timeoutCallbackPromise(10000, null, callback, async (resolve, reject) => {
			let steamid2 = Helpers.steamID(friendSteamId).toString();
			let count = options.maxCount || 100;
			let bbcode_format = options.wantBbcode !== false;
			let rtime32_start_time = options.startTime ? convertDateToUnix(options.startTime) : undefined;
			let start_ordinal = rtime32_start_time ? options.startOrdinal : undefined;
			let time_last = options.lastTime ? convertDateToUnix(options.lastTime) : Math.pow(2, 31) - 1;
			let ordinal_last = time_last ? options.lastOrdinal : undefined;

			let userLastViewed = 0;
			try {
				let activeSessions = await this.getActiveFriendMessageSessions();
				let friendSess;
				if (
					activeSessions.sessions &&
					(friendSess = activeSessions.sessions.find(sess => sess.steamid_friend.toString() == steamid2))
				) {
					userLastViewed = friendSess.time_last_view;
				}
			} catch (ex) {
				this.user.emit('debug', `Exception reported calling getActiveFriendMessageSessions() inside of getFriendMessageHistory(): ${ex.message}`);
			}

			this.user._sendUnified('FriendMessages.GetRecentMessages#1', {
				steamid1: this.user.steamID.toString(),
				steamid2,
				count,
				most_recent_conversation: false,
				rtime32_start_time,
				bbcode_format,
				start_ordinal,
				time_last,
				ordinal_last
			}, (body, hdr) => {
				let err = Helpers.eresultError(hdr.proto);
				if (err) {
					return reject(err);
				}

				body.messages = body.messages.map(msg => ({
					sender: SteamID.fromIndividualAccountID(msg.accountid),
					server_timestamp: new Date(msg.timestamp * 1000),
					ordinal: msg.ordinal || 0,
					message: msg.message,
					message_bbcode_parsed: bbcode_format ? parseBbCode(msg.message) : null,
					unread: msg.accountid != this.user.steamID.accountid && (msg.timestamp * 1000) > userLastViewed
				}));

				body.more_available = !!body.more_available;
				resolve(body);
			});
		});
	}
Get your chat message history with a Steam friend.
@param {SteamID|string} friendSteamId
@param {{maxCount?: int, wantBbcode?: boolean, startTime?: Date|int, startOrdinal?: int, lastTime?: Date|int, lastOrdinal?: int}} [options]
@param {function} [callback]
@returns {Promise<{messages: {sender: SteamID, server_timestamp: Date, ordinal: int, message: string, message_bbcode_parsed: null|Array<(BBCodeNode|string)>}[], more_available: boolean}>}