Browse Source

Merge 731b7108a8 into 232f525b59

pull/1120/merge
FakeZane GitHub 7 years ago
parent
commit
0fcf9ff52d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 1 deletions
  1. +8
    -0
      src/Discord.Net.WebSocket/BaseSocketClient.Events.cs
  2. +1
    -0
      src/Discord.Net.WebSocket/DiscordShardedClient.cs
  3. +5
    -1
      src/Discord.Net.WebSocket/DiscordSocketClient.cs

+ 8
- 0
src/Discord.Net.WebSocket/BaseSocketClient.Events.cs View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Discord.WebSocket
@@ -39,6 +40,13 @@ namespace Discord.WebSocket
remove { _messageDeletedEvent.Remove(value); }
}
internal readonly AsyncEvent<Func<Cacheable<IMessage, ulong>, ISocketMessageChannel, Task>> _messageDeletedEvent = new AsyncEvent<Func<Cacheable<IMessage, ulong>, ISocketMessageChannel, Task>>();
/// <summary> Fired when multiple messages are bulk deleted. </summary>
public event Func<IReadOnlyCollection<Cacheable<IMessage, ulong>>, ISocketMessageChannel, Task> MessageBulkDeleted {
add { _messageBulkDeletedEvent.Add(value); }
remove { _messageBulkDeletedEvent.Remove(value); }
}
internal readonly AsyncEvent<Func<IReadOnlyCollection<Cacheable<IMessage, ulong>>, ISocketMessageChannel, Task>> _messageBulkDeletedEvent = new AsyncEvent<Func<IReadOnlyCollection<Cacheable<IMessage, ulong>>, ISocketMessageChannel, Task>>();
/// <summary> Fired when a message is updated. </summary>
public event Func<Cacheable<IMessage, ulong>, SocketMessage, ISocketMessageChannel, Task> MessageUpdated {
add { _messageUpdatedEvent.Add(value); }


+ 1
- 0
src/Discord.Net.WebSocket/DiscordShardedClient.cs View File

@@ -286,6 +286,7 @@ namespace Discord.WebSocket

client.MessageReceived += (msg) => _messageReceivedEvent.InvokeAsync(msg);
client.MessageDeleted += (cache, channel) => _messageDeletedEvent.InvokeAsync(cache, channel);
client.MessageBulkDeleted += (cache, channel) => _messageBulkDeletedEvent.InvokeAsync(cache, channel);
client.MessageUpdated += (oldMsg, newMsg, channel) => _messageUpdatedEvent.InvokeAsync(oldMsg, newMsg, channel);
client.ReactionAdded += (cache, channel, reaction) => _reactionAddedEvent.InvokeAsync(cache, channel, reaction);
client.ReactionRemoved += (cache, channel, reaction) => _reactionRemovedEvent.InvokeAsync(cache, channel, reaction);


+ 5
- 1
src/Discord.Net.WebSocket/DiscordSocketClient.cs View File

@@ -1270,13 +1270,17 @@ namespace Discord.WebSocket
return;
}

var cacheablelist = new List<Cacheable<IMessage, ulong>>();
foreach (ulong id in data.Ids)
{
var msg = SocketChannelHelper.RemoveMessage(channel, this, id);
bool isCached = msg != null;
var cacheable = new Cacheable<IMessage, ulong>(msg, id, isCached, async () => await channel.GetMessageAsync(id));
await TimedInvokeAsync(_messageDeletedEvent, nameof(MessageDeleted), cacheable, channel).ConfigureAwait(false);
cacheablelist.Add(cacheable);
}
await TimedInvokeAsync(_messageBulkDeletedEvent, nameof(MessageBulkDeleted), cacheablelist.ToReadOnlyCollection(), channel).ConfigureAwait(false);


}
else
{


Loading…
Cancel
Save