Change all signatures in the SocketClients to interfaces.
This commit is contained in:
@@ -41,6 +41,8 @@ namespace Discord
|
|||||||
/// Downloads this entity to cache.
|
/// Downloads this entity to cache.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>An awaitable Task containing the downloaded entity.</returns>
|
/// <returns>An awaitable Task containing the downloaded entity.</returns>
|
||||||
|
/// <exception cref="Discord.Net.HttpException">Thrown when used from a user account.</exception>
|
||||||
|
/// <exception cref="NullReferenceException">Thrown when the message is deleted.</exception>
|
||||||
public async Task<TEntity> DownloadAsync()
|
public async Task<TEntity> DownloadAsync()
|
||||||
{
|
{
|
||||||
return await DownloadFunc();
|
return await DownloadFunc();
|
||||||
@@ -50,6 +52,8 @@ namespace Discord
|
|||||||
/// Returns the cached entity if it exists; otherwise downloads it.
|
/// Returns the cached entity if it exists; otherwise downloads it.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>An awaitable Task containing a cached or downloaded entity.</returns>
|
/// <returns>An awaitable Task containing a cached or downloaded entity.</returns>
|
||||||
|
/// <exception cref="Discord.Net.HttpException">Thrown when used from a user account.</exception>
|
||||||
|
/// <exception cref="NullReferenceException">Thrown when the message is deleted and is not in cache.</exception>
|
||||||
public async Task<TEntity> GetOrDownloadAsync() => HasValue ? Value : await DownloadAsync();
|
public async Task<TEntity> GetOrDownloadAsync() => HasValue ? Value : await DownloadAsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Discord.Net;
|
||||||
|
|
||||||
namespace Discord.WebSocket
|
namespace Discord.WebSocket
|
||||||
{
|
{
|
||||||
@@ -33,36 +34,36 @@ namespace Discord.WebSocket
|
|||||||
remove { _messageReceivedEvent.Remove(value); }
|
remove { _messageReceivedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<SocketMessage, Task>> _messageReceivedEvent = new AsyncEvent<Func<SocketMessage, Task>>();
|
private readonly AsyncEvent<Func<SocketMessage, Task>> _messageReceivedEvent = new AsyncEvent<Func<SocketMessage, Task>>();
|
||||||
public event Func<Cacheable<SocketMessage, ulong>, ISocketMessageChannel, Task> MessageDeleted
|
public event Func<Cacheable<IMessage, ulong>, ISocketMessageChannel, Task> MessageDeleted
|
||||||
{
|
{
|
||||||
add { _messageDeletedEvent.Add(value); }
|
add { _messageDeletedEvent.Add(value); }
|
||||||
remove { _messageDeletedEvent.Remove(value); }
|
remove { _messageDeletedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<Cacheable<SocketMessage, ulong>, ISocketMessageChannel, Task>> _messageDeletedEvent = new AsyncEvent<Func<Cacheable<SocketMessage, ulong>, ISocketMessageChannel, Task>>();
|
private readonly AsyncEvent<Func<Cacheable<IMessage, ulong>, ISocketMessageChannel, Task>> _messageDeletedEvent = new AsyncEvent<Func<Cacheable<IMessage, ulong>, ISocketMessageChannel, Task>>();
|
||||||
public event Func<Cacheable<SocketMessage, ulong>, SocketMessage, ISocketMessageChannel, Task> MessageUpdated
|
public event Func<Cacheable<IMessage, ulong>, SocketMessage, ISocketMessageChannel, Task> MessageUpdated
|
||||||
{
|
{
|
||||||
add { _messageUpdatedEvent.Add(value); }
|
add { _messageUpdatedEvent.Add(value); }
|
||||||
remove { _messageUpdatedEvent.Remove(value); }
|
remove { _messageUpdatedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<Cacheable<SocketMessage, ulong>, SocketMessage, ISocketMessageChannel, Task>> _messageUpdatedEvent = new AsyncEvent<Func<Cacheable<SocketMessage, ulong>, SocketMessage, ISocketMessageChannel, Task>>();
|
private readonly AsyncEvent<Func<Cacheable<IMessage, ulong>, SocketMessage, ISocketMessageChannel, Task>> _messageUpdatedEvent = new AsyncEvent<Func<Cacheable<IMessage, ulong>, SocketMessage, ISocketMessageChannel, Task>>();
|
||||||
public event Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task> ReactionAdded
|
public event Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task> ReactionAdded
|
||||||
{
|
{
|
||||||
add { _reactionAddedEvent.Add(value); }
|
add { _reactionAddedEvent.Add(value); }
|
||||||
remove { _reactionAddedEvent.Remove(value); }
|
remove { _reactionAddedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>> _reactionAddedEvent = new AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>>();
|
private readonly AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>> _reactionAddedEvent = new AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>>();
|
||||||
public event Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task> ReactionRemoved
|
public event Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task> ReactionRemoved
|
||||||
{
|
{
|
||||||
add { _reactionRemovedEvent.Add(value); }
|
add { _reactionRemovedEvent.Add(value); }
|
||||||
remove { _reactionRemovedEvent.Remove(value); }
|
remove { _reactionRemovedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>> _reactionRemovedEvent = new AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>>();
|
private readonly AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>> _reactionRemovedEvent = new AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>>();
|
||||||
public event Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, Task> ReactionsCleared
|
public event Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, Task> ReactionsCleared
|
||||||
{
|
{
|
||||||
add { _reactionsClearedEvent.Add(value); }
|
add { _reactionsClearedEvent.Add(value); }
|
||||||
remove { _reactionsClearedEvent.Remove(value); }
|
remove { _reactionsClearedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, Task>> _reactionsClearedEvent = new AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, Task>>();
|
private readonly AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, Task>> _reactionsClearedEvent = new AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, Task>>();
|
||||||
|
|
||||||
//Roles
|
//Roles
|
||||||
public event Func<SocketRole, Task> RoleCreated
|
public event Func<SocketRole, Task> RoleCreated
|
||||||
|
|||||||
@@ -59,36 +59,36 @@ namespace Discord.WebSocket
|
|||||||
remove { _messageReceivedEvent.Remove(value); }
|
remove { _messageReceivedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<SocketMessage, Task>> _messageReceivedEvent = new AsyncEvent<Func<SocketMessage, Task>>();
|
private readonly AsyncEvent<Func<SocketMessage, Task>> _messageReceivedEvent = new AsyncEvent<Func<SocketMessage, Task>>();
|
||||||
public event Func<Cacheable<SocketMessage, ulong>, ISocketMessageChannel, Task> MessageDeleted
|
public event Func<Cacheable<IMessage, ulong>, ISocketMessageChannel, Task> MessageDeleted
|
||||||
{
|
{
|
||||||
add { _messageDeletedEvent.Add(value); }
|
add { _messageDeletedEvent.Add(value); }
|
||||||
remove { _messageDeletedEvent.Remove(value); }
|
remove { _messageDeletedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<Cacheable<SocketMessage, ulong>, ISocketMessageChannel, Task>> _messageDeletedEvent = new AsyncEvent<Func<Cacheable<SocketMessage, ulong>, ISocketMessageChannel, Task>>();
|
private readonly AsyncEvent<Func<Cacheable<IMessage, ulong>, ISocketMessageChannel, Task>> _messageDeletedEvent = new AsyncEvent<Func<Cacheable<IMessage, ulong>, ISocketMessageChannel, Task>>();
|
||||||
public event Func<Cacheable<SocketMessage, ulong>, SocketMessage, ISocketMessageChannel, Task> MessageUpdated
|
public event Func<Cacheable<IMessage, ulong>, SocketMessage, ISocketMessageChannel, Task> MessageUpdated
|
||||||
{
|
{
|
||||||
add { _messageUpdatedEvent.Add(value); }
|
add { _messageUpdatedEvent.Add(value); }
|
||||||
remove { _messageUpdatedEvent.Remove(value); }
|
remove { _messageUpdatedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<Cacheable<SocketMessage, ulong>, SocketMessage, ISocketMessageChannel, Task>> _messageUpdatedEvent = new AsyncEvent<Func<Cacheable<SocketMessage, ulong>, SocketMessage, ISocketMessageChannel, Task>>();
|
private readonly AsyncEvent<Func<Cacheable<IMessage, ulong>, SocketMessage, ISocketMessageChannel, Task>> _messageUpdatedEvent = new AsyncEvent<Func<Cacheable<IMessage, ulong>, SocketMessage, ISocketMessageChannel, Task>>();
|
||||||
public event Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task> ReactionAdded
|
public event Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task> ReactionAdded
|
||||||
{
|
{
|
||||||
add { _reactionAddedEvent.Add(value); }
|
add { _reactionAddedEvent.Add(value); }
|
||||||
remove { _reactionAddedEvent.Remove(value); }
|
remove { _reactionAddedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>> _reactionAddedEvent = new AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>>();
|
private readonly AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>> _reactionAddedEvent = new AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>>();
|
||||||
public event Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task> ReactionRemoved
|
public event Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task> ReactionRemoved
|
||||||
{
|
{
|
||||||
add { _reactionRemovedEvent.Add(value); }
|
add { _reactionRemovedEvent.Add(value); }
|
||||||
remove { _reactionRemovedEvent.Remove(value); }
|
remove { _reactionRemovedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>> _reactionRemovedEvent = new AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>>();
|
private readonly AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>> _reactionRemovedEvent = new AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, SocketReaction, Task>>();
|
||||||
public event Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, Task> ReactionsCleared
|
public event Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, Task> ReactionsCleared
|
||||||
{
|
{
|
||||||
add { _reactionsClearedEvent.Add(value); }
|
add { _reactionsClearedEvent.Add(value); }
|
||||||
remove { _reactionsClearedEvent.Remove(value); }
|
remove { _reactionsClearedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, Task>> _reactionsClearedEvent = new AsyncEvent<Func<Cacheable<SocketUserMessage, ulong>, ISocketMessageChannel, Task>>();
|
private readonly AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, Task>> _reactionsClearedEvent = new AsyncEvent<Func<Cacheable<IUserMessage, ulong>, ISocketMessageChannel, Task>>();
|
||||||
|
|
||||||
//Roles
|
//Roles
|
||||||
public event Func<SocketRole, Task> RoleCreated
|
public event Func<SocketRole, Task> RoleCreated
|
||||||
|
|||||||
@@ -1292,7 +1292,7 @@ namespace Discord.WebSocket
|
|||||||
|
|
||||||
after = SocketMessage.Create(this, State, author, channel, data);
|
after = SocketMessage.Create(this, State, author, channel, data);
|
||||||
}
|
}
|
||||||
var cacheableBefore = new Cacheable<SocketMessage, ulong>(before, data.Id, async () => await channel.GetMessageAsync(data.Id) as SocketMessage);
|
var cacheableBefore = new Cacheable<IMessage, ulong>(before, data.Id, async () => await channel.GetMessageAsync(data.Id));
|
||||||
|
|
||||||
await _messageUpdatedEvent.InvokeAsync(cacheableBefore, after, channel).ConfigureAwait(false);
|
await _messageUpdatedEvent.InvokeAsync(cacheableBefore, after, channel).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@@ -1318,7 +1318,7 @@ namespace Discord.WebSocket
|
|||||||
}
|
}
|
||||||
|
|
||||||
var msg = SocketChannelHelper.RemoveMessage(channel, this, data.Id);
|
var msg = SocketChannelHelper.RemoveMessage(channel, this, data.Id);
|
||||||
var cacheable = new Cacheable<SocketMessage, ulong>(msg, data.Id, async () => await channel.GetMessageAsync(data.Id) as SocketUserMessage);
|
var cacheable = new Cacheable<IMessage, ulong>(msg, data.Id, async () => await channel.GetMessageAsync(data.Id));
|
||||||
|
|
||||||
await _messageDeletedEvent.InvokeAsync(cacheable, channel).ConfigureAwait(false);
|
await _messageDeletedEvent.InvokeAsync(cacheable, channel).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@@ -1340,7 +1340,7 @@ namespace Discord.WebSocket
|
|||||||
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
|
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
|
||||||
var user = await channel.GetUserAsync(data.UserId, CacheMode.CacheOnly);
|
var user = await channel.GetUserAsync(data.UserId, CacheMode.CacheOnly);
|
||||||
SocketReaction reaction = SocketReaction.Create(data, channel, cachedMsg, Optional.Create(user));
|
SocketReaction reaction = SocketReaction.Create(data, channel, cachedMsg, Optional.Create(user));
|
||||||
var cacheable = new Cacheable<SocketUserMessage, ulong>(cachedMsg, data.MessageId, async () => await channel.GetMessageAsync(data.MessageId) as SocketUserMessage);
|
var cacheable = new Cacheable<IUserMessage, ulong>(cachedMsg, data.MessageId, async () => await channel.GetMessageAsync(data.MessageId) as IUserMessage);
|
||||||
|
|
||||||
cachedMsg?.AddReaction(reaction);
|
cachedMsg?.AddReaction(reaction);
|
||||||
|
|
||||||
@@ -1364,7 +1364,7 @@ namespace Discord.WebSocket
|
|||||||
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
|
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
|
||||||
var user = await channel.GetUserAsync(data.UserId, CacheMode.CacheOnly);
|
var user = await channel.GetUserAsync(data.UserId, CacheMode.CacheOnly);
|
||||||
SocketReaction reaction = SocketReaction.Create(data, channel, cachedMsg, Optional.Create(user));
|
SocketReaction reaction = SocketReaction.Create(data, channel, cachedMsg, Optional.Create(user));
|
||||||
var cacheable = new Cacheable<SocketUserMessage, ulong>(cachedMsg, data.MessageId, async () => await channel.GetMessageAsync(data.MessageId) as SocketUserMessage);
|
var cacheable = new Cacheable<IUserMessage, ulong>(cachedMsg, data.MessageId, async () => await channel.GetMessageAsync(data.MessageId) as IUserMessage);
|
||||||
|
|
||||||
cachedMsg?.RemoveReaction(reaction);
|
cachedMsg?.RemoveReaction(reaction);
|
||||||
|
|
||||||
@@ -1386,7 +1386,7 @@ namespace Discord.WebSocket
|
|||||||
if (channel != null)
|
if (channel != null)
|
||||||
{
|
{
|
||||||
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
|
SocketUserMessage cachedMsg = channel.GetCachedMessage(data.MessageId) as SocketUserMessage;
|
||||||
var cacheable = new Cacheable<SocketUserMessage, ulong>(cachedMsg, data.MessageId, async () => await channel.GetMessageAsync(data.MessageId) as SocketUserMessage);
|
var cacheable = new Cacheable<IUserMessage, ulong>(cachedMsg, data.MessageId, async () => await channel.GetMessageAsync(data.MessageId) as IUserMessage);
|
||||||
|
|
||||||
cachedMsg?.ClearReactions();
|
cachedMsg?.ClearReactions();
|
||||||
|
|
||||||
@@ -1416,7 +1416,7 @@ namespace Discord.WebSocket
|
|||||||
foreach (var id in data.Ids)
|
foreach (var id in data.Ids)
|
||||||
{
|
{
|
||||||
var msg = SocketChannelHelper.RemoveMessage(channel, this, id);
|
var msg = SocketChannelHelper.RemoveMessage(channel, this, id);
|
||||||
var cacheable = new Cacheable<SocketMessage, ulong>(msg, id, async () => await channel.GetMessageAsync(id) as SocketMessage);
|
var cacheable = new Cacheable<IMessage, ulong>(msg, id, async () => await channel.GetMessageAsync(id));
|
||||||
await _messageDeletedEvent.InvokeAsync(cacheable, channel).ConfigureAwait(false);
|
await _messageDeletedEvent.InvokeAsync(cacheable, channel).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user