|
|
@@ -821,15 +821,6 @@ namespace Discord.WebSocket |
|
|
|
/// <inheritdoc /> |
|
|
|
public Task<int> PruneUsersAsync(int days = 30, bool simulate = false, RequestOptions options = null, IEnumerable<ulong> includeRoleIds = null) |
|
|
|
=> GuildHelper.PruneUsersAsync(this, Discord, days, simulate, options, includeRoleIds); |
|
|
|
/// <summary> |
|
|
|
/// Clears this guild's user cache. |
|
|
|
/// </summary> |
|
|
|
public void ClearUserCache() => PurgeGuildUserCache(); |
|
|
|
/// <summary> |
|
|
|
/// Clears this guild's user cache. |
|
|
|
/// </summary> |
|
|
|
/// <param name="predicate">The predicate used to select which users to clear.</param> |
|
|
|
public void ClearUserCache(Func<SocketGuildUser, bool> predicate) => PurgeGuildUserCache(predicate); |
|
|
|
internal SocketGuildUser AddOrUpdateUser(UserModel model) |
|
|
|
{ |
|
|
|
if (_members.TryGetValue(model.Id, out SocketGuildUser member)) |
|
|
@@ -885,8 +876,16 @@ namespace Discord.WebSocket |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
internal void PurgeGuildUserCache() => PurgeGuildUserCache(x => true); |
|
|
|
internal void PurgeGuildUserCache(Func<SocketGuildUser, bool> predicate) |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// Purges this guild's user cache. |
|
|
|
/// </summary> |
|
|
|
public void PurgeUserCache() => PurgeUserCache(_ => true); |
|
|
|
/// <summary> |
|
|
|
/// Purges this guild's user cache. |
|
|
|
/// </summary> |
|
|
|
/// <param name="predicate">The predicate used to select which users to clear.</param> |
|
|
|
public void PurgeUserCache(Func<SocketGuildUser, bool> predicate) |
|
|
|
{ |
|
|
|
var membersToPurge = Users.Where(x => predicate.Invoke(x) && x?.Id != Discord.CurrentUser.Id); |
|
|
|
var membersToKeep = Users.Where(x => !predicate.Invoke(x) || x?.Id == Discord.CurrentUser.Id); |
|
|
|