Readded Server.TextChannels and VoiceChannels. Changed Channel.Type to ChannelType.

This commit is contained in:
RogueException
2015-12-23 04:51:35 -04:00
parent 9b0dcc8ee3
commit 8350040e76
3 changed files with 12 additions and 8 deletions

View File

@@ -59,8 +59,8 @@ namespace Discord
public string Topic { get; private set; } public string Topic { get; private set; }
/// <summary> Gets the position of this channel relative to other channels in this server. </summary> /// <summary> Gets the position of this channel relative to other channels in this server. </summary>
public int Position { get; private set; } public int Position { get; private set; }
/// <summary> Gets the type of this channel (see ChannelTypes). </summary> /// <summary> Gets the type of this channel). </summary>
public string Type { get; private set; } public ChannelType Type { get; private set; }
/// <summary> Gets true if this is a private chat with another user. </summary> /// <summary> Gets true if this is a private chat with another user. </summary>
public bool IsPrivate => Recipient != null; public bool IsPrivate => Recipient != null;
@@ -172,7 +172,7 @@ namespace Discord
if (position != null) if (position != null)
{ {
Channel[] channels = Server.Channels.Where(x => x.Type == Type).OrderBy(x => x.Position).ToArray(); Channel[] channels = Server.AllChannels.Where(x => x.Type == Type).OrderBy(x => x.Position).ToArray();
int oldPos = Array.IndexOf(channels, this); int oldPos = Array.IndexOf(channels, this);
var newPosChannel = channels.Where(x => x.Position > position).FirstOrDefault(); var newPosChannel = channels.Where(x => x.Position > position).FirstOrDefault();
int newPos = (newPosChannel != null ? Array.IndexOf(channels, newPosChannel) : channels.Length) - 1; int newPos = (newPosChannel != null ? Array.IndexOf(channels, newPosChannel) : channels.Length) - 1;

View File

@@ -68,7 +68,11 @@ namespace Discord
/// <summary> Gets a collection of the ids of all users banned on this server. </summary> /// <summary> Gets a collection of the ids of all users banned on this server. </summary>
public IEnumerable<ulong> BannedUserIds => _bans.Select(x => x.Key); public IEnumerable<ulong> BannedUserIds => _bans.Select(x => x.Key);
/// <summary> Gets a collection of all channels in this server. </summary> /// <summary> Gets a collection of all channels in this server. </summary>
public IEnumerable<Channel> Channels => _channels.Select(x => x.Value); public IEnumerable<Channel> AllChannels => _channels.Select(x => x.Value);
/// <summary> Gets a collection of text channels in this server. </summary>
public IEnumerable<Channel> TextChannels => _channels.Select(x => x.Value).Where(x => x.Type == ChannelType.Text);
/// <summary> Gets a collection of voice channels in this server. </summary>
public IEnumerable<Channel> VoiceChannels => _channels.Select(x => x.Value).Where(x => x.Type == ChannelType.Voice);
/// <summary> Gets a collection of all members in this server. </summary> /// <summary> Gets a collection of all members in this server. </summary>
public IEnumerable<User> Users => _users.Select(x => x.Value.User); public IEnumerable<User> Users => _users.Select(x => x.Value.User);
/// <summary> Gets a collection of all roles in this server. </summary> /// <summary> Gets a collection of all roles in this server. </summary>
@@ -386,7 +390,7 @@ namespace Discord
var user = _users.GetOrAdd(id, x => new Member(new User(Client, id, this))); var user = _users.GetOrAdd(id, x => new Member(new User(Client, id, this)));
if (user.User == newUser) if (user.User == newUser)
{ {
foreach (var channel in Channels) foreach (var channel in AllChannels)
channel.AddUser(newUser); channel.AddUser(newUser);
} }
return user.User; return user.User;
@@ -396,7 +400,7 @@ namespace Discord
Member member; Member member;
if (_users.TryRemove(id, out member)) if (_users.TryRemove(id, out member))
{ {
foreach (var channel in Channels) foreach (var channel in AllChannels)
channel.RemoveUser(id); channel.RemoveUser(id);
} }
return member.User; return member.User;

View File

@@ -101,14 +101,14 @@ namespace Discord
{ {
if (Client.Config.UsePermissionsCache) if (Client.Config.UsePermissionsCache)
{ {
return Server.Channels.Where(x => return Server.AllChannels.Where(x =>
(x.Type == ChannelType.Text && x.GetPermissions(this).ReadMessages) || (x.Type == ChannelType.Text && x.GetPermissions(this).ReadMessages) ||
(x.Type == ChannelType.Voice && x.GetPermissions(this).Connect)); (x.Type == ChannelType.Voice && x.GetPermissions(this).Connect));
} }
else else
{ {
ChannelPermissions perms = new ChannelPermissions(); ChannelPermissions perms = new ChannelPermissions();
return Server.Channels return Server.AllChannels
.Where(x => .Where(x =>
{ {
x.UpdatePermissions(this, perms); x.UpdatePermissions(this, perms);