@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Discord.WebSocket.Extensions
@@ -9,36 +10,44 @@ namespace Discord.WebSocket.Extensions
// Channels
public static IGuildChannel GetChannel(this IGuild guild, ulong id) =>
(guild as SocketG uild).GetChannel(id);
GetSocketGuild(g uild).GetChannel(id);
public static ITextChannel GetTextChannel(this IGuild guild, ulong id) =>
(guild as SocketG uild).GetChannel(id) as ITextChannel;
GetSocketGuild(g uild).GetChannel(id) as ITextChannel;
public static IEnumerable<ITextChannel> GetTextChannels(this IGuild guild) =>
(guild as SocketG uild).Channels.Select(c => c as ITextChannel).Where(c => c != null);
GetSocketGuild(g uild).Channels.Select(c => c as ITextChannel).Where(c => c != null);
public static IVoiceChannel GetVoiceChannel(this IGuild guild, ulong id) =>
(guild as SocketG uild).GetChannel(id) as IVoiceChannel;
GetSocketGuild(g uild).GetChannel(id) as IVoiceChannel;
public static IEnumerable<IVoiceChannel> GetVoiceChannels(this IGuild guild) =>
(guild as SocketG uild).Channels.Select(c => c as IVoiceChannel).Where(c => c != null);
GetSocketGuild(g uild).Channels.Select(c => c as IVoiceChannel).Where(c => c != null);
// Users
public static IGuildUser GetCurrentUser(this IGuild guild) =>
(guild as SocketG uild).CurrentUser;
GetSocketGuild(g uild).CurrentUser;
public static IGuildUser GetUser(this IGuild guild, ulong id) =>
(guild as SocketG uild).GetUser(id);
GetSocketGuild(g uild).GetUser(id);
public static IEnumerable <IGuildUser> GetUsers(this IGuild guild) =>
(guild as SocketG uild).Members;
public static IReadOnlyCollection <IGuildUser> GetUsers(this IGuild guild) =>
GetSocketGuild(g uild).Members;
public static int GetUserCount(this IGuild guild) =>
(guild as SocketG uild).MemberCount;
GetSocketGuild(g uild).MemberCount;
public static int GetCachedUserCount(this IGuild guild) =>
(guild as SocketGuild).DownloadedMemberCount;
GetSocketGuild(guild).DownloadedMemberCount;
internal static SocketGuild GetSocketGuild(IGuild guild)
{
var socketGuild = guild as SocketGuild;
if (socketGuild == null)
throw new InvalidOperationException("This extension method is only valid on WebSocket Entities");
return socketGuild;
}
}
}