Added extension methods for WebSocket->Channels
For users importing `Discord.WebSocket.Extensions`, there are now non-async extensions for GetUser. These methods point to the appropriate method on the respective SocketgChannel.
This commit is contained in:
48
src/Discord.Net/WebSocket/Extensions/ChannelExtensions.cs
Normal file
48
src/Discord.Net/WebSocket/Extensions/ChannelExtensions.cs
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Discord.WebSocket.Extensions
|
||||||
|
{
|
||||||
|
public static class ChannelExtensions
|
||||||
|
{
|
||||||
|
public static IUser GetUser(this IDMChannel channel, ulong id)
|
||||||
|
=> GetSocketDMChannel(channel).GetUser(id);
|
||||||
|
|
||||||
|
public static IGroupUser GetUser(this IGroupChannel channel, ulong id)
|
||||||
|
=> GetSocketGroupChannel(channel).GetUser(id) as IGroupUser;
|
||||||
|
|
||||||
|
public static IGuildUser GetUser(this ITextChannel channel, ulong id)
|
||||||
|
=> GetSocketTextChannel(channel).GetUser(id);
|
||||||
|
|
||||||
|
public static IGuildUser GetUser(this IVoiceChannel channel, ulong id)
|
||||||
|
=> GetSocketVoiceChannel(channel).GetUser(id);
|
||||||
|
|
||||||
|
internal static SocketDMChannel GetSocketDMChannel(IDMChannel channel)
|
||||||
|
{
|
||||||
|
var socketChannel = channel as SocketDMChannel;
|
||||||
|
if (socketChannel == null)
|
||||||
|
throw new InvalidOperationException("This extension method is only valid on WebSocket Entities");
|
||||||
|
return socketChannel;
|
||||||
|
}
|
||||||
|
internal static SocketGroupChannel GetSocketGroupChannel(IGroupChannel channel)
|
||||||
|
{
|
||||||
|
var socketChannel = channel as SocketGroupChannel;
|
||||||
|
if (socketChannel == null)
|
||||||
|
throw new InvalidOperationException("This extension method is only valid on WebSocket Entities");
|
||||||
|
return socketChannel;
|
||||||
|
}
|
||||||
|
internal static SocketTextChannel GetSocketTextChannel(ITextChannel channel)
|
||||||
|
{
|
||||||
|
var socketChannel = channel as SocketTextChannel;
|
||||||
|
if (socketChannel == null)
|
||||||
|
throw new InvalidOperationException("This extension method is only valid on WebSocket Entities");
|
||||||
|
return socketChannel;
|
||||||
|
}
|
||||||
|
internal static SocketVoiceChannel GetSocketVoiceChannel(IVoiceChannel channel)
|
||||||
|
{
|
||||||
|
var socketChannel = channel as SocketVoiceChannel;
|
||||||
|
if (socketChannel == null)
|
||||||
|
throw new InvalidOperationException("This extension method is only valid on WebSocket Entities");
|
||||||
|
return socketChannel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@ using System.Linq;
|
|||||||
|
|
||||||
namespace Discord.WebSocket.Extensions
|
namespace Discord.WebSocket.Extensions
|
||||||
{
|
{
|
||||||
// TODO: Docstrings
|
// Todo: Docstrings
|
||||||
public static class GuildExtensions
|
public static class GuildExtensions
|
||||||
{
|
{
|
||||||
// Channels
|
// Channels
|
||||||
|
|||||||
Reference in New Issue
Block a user