Beispiel #1
0
        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));
 }