From c2acc2c28e19a291140f9bf20e6570b4e17febdd Mon Sep 17 00:00:00 2001 From: RogueException Date: Thu, 1 Oct 2015 18:54:54 -0300 Subject: [PATCH] Fix Channel.UserIds thread safety and recursion --- src/Discord.Net/Models/Channel.cs | 8 ++++---- src/Discord.Net/Models/Member.cs | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Discord.Net/Models/Channel.cs b/src/Discord.Net/Models/Channel.cs index fa27f01cf..1d656db7b 100644 --- a/src/Discord.Net/Models/Channel.cs +++ b/src/Discord.Net/Models/Channel.cs @@ -47,17 +47,17 @@ namespace Discord [JsonIgnore] public User Recipient => _client.Users[RecipientId]; - private string[] userIds; + private string[] _userIds; public IEnumerable UserIds { get { if (!_areMembersStale) - return userIds; + return _userIds; + _userIds = Server.Members.Where(x => x.GetPermissions(Id).Text_ReadMessages).Select(x => x.UserId).ToArray(); _areMembersStale = false; - userIds = Members.Where(x => x.Permissions.Text_ReadMessages).Select(x => x.UserId).ToArray(); - return userIds; + return _userIds; } } public IEnumerable Members => UserIds.Select(x => _client.Members[x, ServerId]); diff --git a/src/Discord.Net/Models/Member.cs b/src/Discord.Net/Models/Member.cs index 7e98622a7..1e2a5f3ca 100644 --- a/src/Discord.Net/Models/Member.cs +++ b/src/Discord.Net/Models/Member.cs @@ -31,7 +31,6 @@ namespace Discord public string SessionId { get; internal set; } public string Token { get; internal set; } - public PackedPermissions Permissions { get; internal set; } /// Returns the id for the game this user is currently playing. public string GameId { get; internal set; }