internal void HandleGuildDelete(UnavailableGuild data) { if (!_guilds.TryGetValue(data.Id.RawValue, out var guild)) { _logger.Warning($"Failed to process GuildDelete, unknown guild {data.Id}"); return; } if (data.Unavailable == true) { data.Unavailable = true; Unavailable?.Invoke(guild); } else { if (guild.Unavailable != true) { guild.Unavailable = true; Unavailable?.Invoke(guild); } _guilds.TryRemove(data.Id.RawValue, out _); Deleted?.Invoke(guild); } }
private void Run(UnavailableGuild guild) { Task.Run(() => Client.Cache.Guilds.DeleteAsync(guild.Id)); }