Fix Channel.UserIds thread safety and recursion
This commit is contained in:
@@ -47,17 +47,17 @@ namespace Discord
|
|||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public User Recipient => _client.Users[RecipientId];
|
public User Recipient => _client.Users[RecipientId];
|
||||||
|
|
||||||
private string[] userIds;
|
private string[] _userIds;
|
||||||
public IEnumerable<string> UserIds
|
public IEnumerable<string> UserIds
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (!_areMembersStale)
|
if (!_areMembersStale)
|
||||||
return userIds;
|
return _userIds;
|
||||||
|
|
||||||
|
_userIds = Server.Members.Where(x => x.GetPermissions(Id).Text_ReadMessages).Select(x => x.UserId).ToArray();
|
||||||
_areMembersStale = false;
|
_areMembersStale = false;
|
||||||
userIds = Members.Where(x => x.Permissions.Text_ReadMessages).Select(x => x.UserId).ToArray();
|
return _userIds;
|
||||||
return userIds;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public IEnumerable<Member> Members => UserIds.Select(x => _client.Members[x, ServerId]);
|
public IEnumerable<Member> Members => UserIds.Select(x => _client.Members[x, ServerId]);
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ namespace Discord
|
|||||||
|
|
||||||
public string SessionId { get; internal set; }
|
public string SessionId { get; internal set; }
|
||||||
public string Token { get; internal set; }
|
public string Token { get; internal set; }
|
||||||
public PackedPermissions Permissions { get; internal set; }
|
|
||||||
|
|
||||||
/// <summary> Returns the id for the game this user is currently playing. </summary>
|
/// <summary> Returns the id for the game this user is currently playing. </summary>
|
||||||
public string GameId { get; internal set; }
|
public string GameId { get; internal set; }
|
||||||
|
|||||||
Reference in New Issue
Block a user