From c2978914e70f1aa69cc9daad4f76a2752c979aeb Mon Sep 17 00:00:00 2001 From: Christopher F Date: Sat, 6 Aug 2016 21:12:43 -0400 Subject: [PATCH] Add Extensions for WebSocket->SocketClient --- .../Extensions/SocketClientExtensions.cs | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/Discord.Net/WebSocket/Extensions/SocketClientExtensions.cs diff --git a/src/Discord.Net/WebSocket/Extensions/SocketClientExtensions.cs b/src/Discord.Net/WebSocket/Extensions/SocketClientExtensions.cs new file mode 100644 index 000000000..7d147deee --- /dev/null +++ b/src/Discord.Net/WebSocket/Extensions/SocketClientExtensions.cs @@ -0,0 +1,49 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Discord.WebSocket +{ + public static class SocketClientExtensions + { + public static IVoiceRegion GetVoiceRegion(this DiscordSocketClient client, string id) + { + var region = client.VoiceRegions.FirstOrDefault(r => r.Id == id); + return region; + } + + public static IReadOnlyCollection GetVoiceRegions(this DiscordSocketClient client) => + client.VoiceRegions; + + public static IGuild GetGuild(this DiscordSocketClient client, ulong id) => + client.DataStore.GetGuild(id); + + public static GuildEmbed? GetGuildEmbed(this DiscordSocketClient client, ulong id) + { + var guild = client.DataStore.GetGuild(id); + if (guild != null) + return new GuildEmbed(guild.IsEmbeddable, guild.EmbedChannelId); + return null; + } + + public static IReadOnlyCollection GetGuildSummaries(this DiscordSocketClient client) => + client.Guilds; + public static IReadOnlyCollection GetGuilds(this DiscordSocketClient client) => + client.Guilds; + + public static IChannel GetChannel(this DiscordSocketClient client, ulong id) => + client.DataStore.GetChannel(id); + + public static IReadOnlyCollection GetPrivateChannels(this DiscordSocketClient client) => + client.DataStore.PrivateChannels; + + public static IUser GetUser(this DiscordSocketClient client, ulong id) => + client.DataStore.GetUser(id); + + public static IUser GetUser(this DiscordSocketClient client, string username, string discriminator) => + client.DataStore.Users.Where(x => x.Discriminator == discriminator && x.Username == username).FirstOrDefault(); + + public static ISelfUser GetCurrentUser(this DiscordSocketClient client) => + client.CurrentUser; + + } +}