Example #1
0
        /// <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);
        }
Example #2
0
 /// <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));
 }