private async Task OnGuildCreate(DiscordGuildPacket guild)
        {
            var managedGuild = new DiscordGuild(guild, client);

            guildCreate.OnNext(managedGuild);
            if (!await cacheHandler.HasGuildAsync(guild.Id) &&
                !(guild.Unavailable ?? true))
            {
                guildJoin.OnNext(managedGuild);
            }
            else
            {
                guildAvailable.OnNext(managedGuild);
            }
        }