Browse Source

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.
tags/1.0-rc
Christopher F 8 years ago
parent
commit
e5909c49bd
2 changed files with 49 additions and 1 deletions
  1. +48
    -0
      src/Discord.Net/WebSocket/Extensions/ChannelExtensions.cs
  2. +1
    -1
      src/Discord.Net/WebSocket/Extensions/GuildExtensions.cs

+ 48
- 0
src/Discord.Net/WebSocket/Extensions/ChannelExtensions.cs View 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;
}
}
}

+ 1
- 1
src/Discord.Net/WebSocket/Extensions/GuildExtensions.cs View File

@@ -4,7 +4,7 @@ using System.Linq;

namespace Discord.WebSocket.Extensions
{
// TODO: Docstrings
// Todo: Docstrings
public static class GuildExtensions
{
// Channels


Loading…
Cancel
Save