/// <summary> /// Gets messages from a text channel. /// <para>Requires <see cref="DiscordPermission.ReadMessages"/>.</para> /// </summary> /// <exception cref="DiscordHttpApiException"></exception> public async Task <IReadOnlyList <DiscordMessage> > GetChannelMessages(Snowflake channelId, Snowflake?baseMessageId = null, int?limit = null, MessageGetStrategy getStrategy = MessageGetStrategy.Before) { UrlParametersBuilder builder = new UrlParametersBuilder(); if (baseMessageId.HasValue) { builder.Add(getStrategy.ToString().ToLower(), baseMessageId.Value.ToString()); } if (limit.HasValue) { builder.Add("limit", limit.Value.ToString()); } DiscordApiData data = await rest.Get($"channels/{channelId}/messages{builder.ToQueryString()}", $"channels/{channelId}/messages").ConfigureAwait(false); DiscordMessage[] messages = new DiscordMessage[data.Values.Count]; for (int i = 0; i < messages.Length; i++) { messages[i] = new DiscordMessage(this, data.Values[i]); } return(messages); }
/// <summary> /// Gets a list of messages in this channel. /// <para>Requires <see cref="DiscordPermission.ReadMessages"/>.</para> /// </summary> /// <param name="baseMessageId">The message ID the list will start at (is not included in the final list).</param> /// <param name="limit">Maximum number of messages to be returned.</param> /// <param name="getStrategy">The way messages will be located based on the <paramref name="baseMessageId"/>.</param> /// <exception cref="DiscordHttpApiException"></exception> public Task <IReadOnlyList <DiscordMessage> > GetMessages(Snowflake baseMessageId, int?limit = null, MessageGetStrategy getStrategy = MessageGetStrategy.Before) { return(http.GetChannelMessages(Id, baseMessageId, limit, getStrategy)); }