Browse Source

Merge pull request #186 from RogueException/issues/185

Add Sync Extensions for DiscordSocketClient
tags/1.0-rc
RogueException GitHub 9 years ago
parent
commit
153eda472a
1 changed files with 49 additions and 0 deletions
  1. +49
    -0
      src/Discord.Net/WebSocket/Extensions/SocketClientExtensions.cs

+ 49
- 0
src/Discord.Net/WebSocket/Extensions/SocketClientExtensions.cs View File

@@ -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<IVoiceRegion> 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<IUserGuild> GetGuildSummaries(this DiscordSocketClient client) =>
client.Guilds;
public static IReadOnlyCollection<IGuild> GetGuilds(this DiscordSocketClient client) =>
client.Guilds;

public static IChannel GetChannel(this DiscordSocketClient client, ulong id) =>
client.DataStore.GetChannel(id);

public static IReadOnlyCollection<IPrivateChannel> 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;

}
}

Loading…
Cancel
Save