@@ -237,8 +237,8 @@ namespace Discord.WebSocket
await _gatewayLogger.DebugAsync("Raising virtual GuildUnavailables").ConfigureAwait(false);
await _gatewayLogger.DebugAsync("Raising virtual GuildUnavailables").ConfigureAwait(false);
foreach (var guild in State.Guilds)
foreach (var guild in State.Guilds)
{
{
if (guild._a vailable)
await _guildUnavailableEvent.Invok eAsync(guild).ConfigureAwait(false);
if (guild.IsA vailable)
await GuildUnavailabl eAsync(guild).ConfigureAwait(false);
}
}
}
}
@@ -477,10 +477,10 @@ namespace Discord.WebSocket
{
{
var model = data.Guilds[i];
var model = data.Guilds[i];
var guild = AddGuild(model, state);
var guild = AddGuild(model, state);
if (!guild._a vailable || ApiClient.AuthTokenType == TokenType.User)
if (!guild.IsA vailable || ApiClient.AuthTokenType == TokenType.User)
unavailableGuilds++;
unavailableGuilds++;
else
else
await _guildAvailableEvent.Invok eAsync(guild).ConfigureAwait(false);
await GuildAvailabl eAsync(guild).ConfigureAwait(false);
}
}
for (int i = 0; i < data.PrivateChannels.Length; i++)
for (int i = 0; i < data.PrivateChannels.Length; i++)
AddPrivateChannel(data.PrivateChannels[i], state);
AddPrivateChannel(data.PrivateChannels[i], state);
@@ -526,8 +526,8 @@ namespace Discord.WebSocket
//Notify the client that these guilds are available again
//Notify the client that these guilds are available again
foreach (var guild in State.Guilds)
foreach (var guild in State.Guilds)
{
{
if (guild._a vailable)
await _guildAvailableEvent.Invok eAsync(guild).ConfigureAwait(false);
if (guild.IsA vailable)
await GuildAvailabl eAsync(guild).ConfigureAwait(false);
}
}
await _gatewayLogger.InfoAsync("Resumed previous session").ConfigureAwait(false);
await _gatewayLogger.InfoAsync("Resumed previous session").ConfigureAwait(false);
@@ -553,7 +553,7 @@ namespace Discord.WebSocket
var unavailableGuilds = _unavailableGuilds;
var unavailableGuilds = _unavailableGuilds;
if (unavailableGuilds != 0)
if (unavailableGuilds != 0)
_unavailableGuilds = unavailableGuilds - 1;
_unavailableGuilds = unavailableGuilds - 1;
await _guildAvailableEvent.Invok eAsync(guild).ConfigureAwait(false);
await GuildAvailabl eAsync(guild).ConfigureAwait(false);
}
}
else
else
{
{
@@ -630,7 +630,7 @@ namespace Discord.WebSocket
//This is treated as an extension of GUILD_AVAILABLE
//This is treated as an extension of GUILD_AVAILABLE
_unavailableGuilds--;
_unavailableGuilds--;
_lastGuildAvailableTime = Environment.TickCount;
_lastGuildAvailableTime = Environment.TickCount;
await _guildAvailableEvent.Invok eAsync(guild).ConfigureAwait(false);
await GuildAvailabl eAsync(guild).ConfigureAwait(false);
await _guildUpdatedEvent.InvokeAsync(before, guild).ConfigureAwait(false);
await _guildUpdatedEvent.InvokeAsync(before, guild).ConfigureAwait(false);
}
}
else
else
@@ -651,7 +651,7 @@ namespace Discord.WebSocket
var guild = State.GetGuild(data.Id);
var guild = State.GetGuild(data.Id);
if (guild != null)
if (guild != null)
{
{
await _guildUnavailableEvent.Invok eAsync(guild).ConfigureAwait(false);
await GuildUnavailabl eAsync(guild).ConfigureAwait(false);
_unavailableGuilds++;
_unavailableGuilds++;
}
}
else
else
@@ -668,7 +668,7 @@ namespace Discord.WebSocket
var guild = RemoveGuild(data.Id);
var guild = RemoveGuild(data.Id);
if (guild != null)
if (guild != null)
{
{
await _guildUnavailableEvent.Invok eAsync(guild).ConfigureAwait(false);
await GuildUnavailabl eAsync(guild).ConfigureAwait(false);
await _leftGuildEvent.InvokeAsync(guild).ConfigureAwait(false);
await _leftGuildEvent.InvokeAsync(guild).ConfigureAwait(false);
}
}
else
else
@@ -1659,6 +1659,23 @@ namespace Discord.WebSocket
return channel;
return channel;
}
}
private async Task GuildAvailableAsync(SocketGuild guild)
{
if (!guild.IsConnected)
{
guild.IsConnected = true;
await _guildAvailableEvent.InvokeAsync(guild).ConfigureAwait(false);
}
}
private async Task GuildUnavailableAsync(SocketGuild guild)
{
if (guild.IsConnected)
{
guild.IsConnected = false;
await _guildUnavailableEvent.InvokeAsync(guild).ConfigureAwait(false);
}
}
//IDiscordClient
//IDiscordClient
ConnectionState IDiscordClient.ConnectionState => _connection.State;
ConnectionState IDiscordClient.ConnectionState => _connection.State;