public static async Task DeleteMessagesAsync(this IRestClient client, Snowflake channelId, IEnumerable <Snowflake> messageIds, IRestRequestOptions options = null) { if (messageIds == null) { throw new ArgumentNullException(nameof(messageIds)); } var messages = messageIds.ToArray(); if (messages.Length == 0) { return; } if (messages.Length == 1) { await client.DeleteMessageAsync(channelId, messages[0], options).ConfigureAwait(false); return; } if (messages.Length <= 100) { await client.InternalDeleteMessagesAsync(channelId, messages, options).ConfigureAwait(false); return; } var enumerator = client.EnumerateMessageDeletion(channelId, messages, options).GetAsyncEnumerator(); await using (enumerator.ConfigureAwait(false)) { // Exhaust the enumerator. while (await enumerator.MoveNextAsync().ConfigureAwait(false)) { } } }