diff --git a/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs b/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs
index 7fce1e855..a465b3ad8 100644
--- a/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs
+++ b/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs
@@ -30,7 +30,9 @@ namespace Discord
/// Gets a collection of pinned messages in this channel.
Task> GetPinnedMessagesAsync(RequestOptions options = null);
/// Bulk deletes multiple messages.
- Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null);
+ Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null);
+ /// Bulk deletes multiple messages.
+ Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null);
/// Broadcasts the "user is typing" message to all users in this channel, lasting 10 seconds.
Task TriggerTypingAsync(RequestOptions options = null);
diff --git a/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs b/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs
index 284decd8c..6b7dca3a9 100644
--- a/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs
@@ -178,12 +178,12 @@ namespace Discord.Rest
var args = new UploadFileParams(stream) { Filename = filename, Content = text, IsTTS = isTTS };
var model = await client.ApiClient.UploadFileAsync(channel.Id, args, options).ConfigureAwait(false);
return RestUserMessage.Create(client, channel, client.CurrentUser, model);
- }
+ }
- public static async Task DeleteMessagesAsync(IMessageChannel channel, BaseDiscordClient client,
- IEnumerable messages, RequestOptions options)
+ public static async Task DeleteMessagesAsync(IMessageChannel channel, BaseDiscordClient client,
+ IEnumerable messageIds, RequestOptions options)
{
- var msgs = messages.Select(x => x.Id).ToArray();
+ var msgs = messageIds.ToArray();
if (msgs.Length < 100)
{
var args = new DeleteMessagesParams(msgs);
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestDMChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestDMChannel.cs
index 0a4bc9522..8a31da3f1 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestDMChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestDMChannel.cs
@@ -73,7 +73,9 @@ namespace Discord.Rest
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
public Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null)
- => ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messages.Select(x => x.Id), options);
+ public Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null)
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messageIds, options);
public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestGroupChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestGroupChannel.cs
index b324422a5..44c118fee 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestGroupChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestGroupChannel.cs
@@ -86,7 +86,9 @@ namespace Discord.Rest
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
public Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null)
- => ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messages.Select(x => x.Id), options);
+ public Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null)
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messageIds, options);
public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs
index 2fe9feb91..d7405fb4a 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs
@@ -64,7 +64,9 @@ namespace Discord.Rest
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
public Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null)
- => ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messages.Select(x => x.Id), options);
+ public Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null)
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messageIds, options);
public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
diff --git a/src/Discord.Net.Rest/Entities/Channels/RpcVirtualMessageChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RpcVirtualMessageChannel.cs
index dfd996ee1..775f2ea82 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RpcVirtualMessageChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RpcVirtualMessageChannel.cs
@@ -43,7 +43,9 @@ namespace Discord.Rest
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
public Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null)
- => ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messages.Select(x => x.Id), options);
+ public Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null)
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messageIds, options);
public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
diff --git a/src/Discord.Net.Rpc/Entities/Channels/RpcDMChannel.cs b/src/Discord.Net.Rpc/Entities/Channels/RpcDMChannel.cs
index b2c3daaa2..da9bce700 100644
--- a/src/Discord.Net.Rpc/Entities/Channels/RpcDMChannel.cs
+++ b/src/Discord.Net.Rpc/Entities/Channels/RpcDMChannel.cs
@@ -54,7 +54,9 @@ namespace Discord.Rpc
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
public Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null)
- => ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messages.Select(x => x.Id), options);
+ public Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null)
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messageIds, options);
public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
diff --git a/src/Discord.Net.Rpc/Entities/Channels/RpcGroupChannel.cs b/src/Discord.Net.Rpc/Entities/Channels/RpcGroupChannel.cs
index b5effacc6..d449688a4 100644
--- a/src/Discord.Net.Rpc/Entities/Channels/RpcGroupChannel.cs
+++ b/src/Discord.Net.Rpc/Entities/Channels/RpcGroupChannel.cs
@@ -57,7 +57,9 @@ namespace Discord.Rpc
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
public Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null)
- => ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messages.Select(x => x.Id), options);
+ public Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null)
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messageIds, options);
public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
diff --git a/src/Discord.Net.Rpc/Entities/Channels/RpcTextChannel.cs b/src/Discord.Net.Rpc/Entities/Channels/RpcTextChannel.cs
index bdfafa561..72b45e466 100644
--- a/src/Discord.Net.Rpc/Entities/Channels/RpcTextChannel.cs
+++ b/src/Discord.Net.Rpc/Entities/Channels/RpcTextChannel.cs
@@ -58,7 +58,9 @@ namespace Discord.Rpc
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
public Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null)
- => ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messages.Select(x => x.Id), options);
+ public Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null)
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messageIds, options);
public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs
index 8e9272ff0..322a99496 100644
--- a/src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs
+++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs
@@ -77,7 +77,9 @@ namespace Discord.WebSocket
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
public Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null)
- => ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messages.Select(x => x.Id), options);
+ public Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null)
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messageIds, options);
public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs
index d7d80214f..dc1853e73 100644
--- a/src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs
+++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs
@@ -105,7 +105,9 @@ namespace Discord.WebSocket
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
public Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null)
- => ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messages.Select(x => x.Id), options);
+ public Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null)
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messageIds, options);
public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs
index e75b6a4f1..c22523e00 100644
--- a/src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs
+++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs
@@ -81,7 +81,9 @@ namespace Discord.WebSocket
=> ChannelHelper.SendFileAsync(this, Discord, stream, filename, text, isTTS, options);
public Task DeleteMessagesAsync(IEnumerable messages, RequestOptions options = null)
- => ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messages.Select(x => x.Id), options);
+ public Task DeleteMessagesAsync(IEnumerable messageIds, RequestOptions options = null)
+ => ChannelHelper.DeleteMessagesAsync(this, Discord, messageIds, options);
public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);