Increased connection timeout to 30s, added initial support for unavailable servers
This commit is contained in:
@@ -157,6 +157,8 @@ namespace Discord.API
|
|||||||
public PresenceMemberInfo[] Presences;
|
public PresenceMemberInfo[] Presences;
|
||||||
[JsonProperty("voice_states")]
|
[JsonProperty("voice_states")]
|
||||||
public VoiceMemberInfo[] VoiceStates;
|
public VoiceMemberInfo[] VoiceStates;
|
||||||
|
[JsonProperty("unavailable")]
|
||||||
|
public bool Unavailable;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Messages
|
//Messages
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ namespace Discord
|
|||||||
_servers = new Servers(this, cacheLock);
|
_servers = new Servers(this, cacheLock);
|
||||||
_users = new Users(this, cacheLock);
|
_users = new Users(this, cacheLock);
|
||||||
|
|
||||||
this.Connected += (s,e) => _api.CancelToken = CancelToken;
|
this.Connected += (s, e) => _api.CancelToken = CancelToken;
|
||||||
|
|
||||||
VoiceDisconnected += (s, e) =>
|
VoiceDisconnected += (s, e) =>
|
||||||
{
|
{
|
||||||
@@ -340,10 +340,13 @@ namespace Discord
|
|||||||
_currentUser = _users.GetOrAdd(data.User.Id);
|
_currentUser = _users.GetOrAdd(data.User.Id);
|
||||||
_currentUser.Update(data.User);
|
_currentUser.Update(data.User);
|
||||||
foreach (var model in data.Guilds)
|
foreach (var model in data.Guilds)
|
||||||
|
{
|
||||||
|
if (!model.Unavailable)
|
||||||
{
|
{
|
||||||
var server = _servers.GetOrAdd(model.Id);
|
var server = _servers.GetOrAdd(model.Id);
|
||||||
server.Update(model);
|
server.Update(model);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
foreach (var model in data.PrivateChannels)
|
foreach (var model in data.PrivateChannels)
|
||||||
{
|
{
|
||||||
var user = _users.GetOrAdd(model.Recipient.Id);
|
var user = _users.GetOrAdd(model.Recipient.Id);
|
||||||
@@ -351,9 +354,6 @@ namespace Discord
|
|||||||
var channel = _channels.GetOrAdd(model.Id, null, user.Id);
|
var channel = _channels.GetOrAdd(model.Id, null, user.Id);
|
||||||
channel.Update(model);
|
channel.Update(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*foreach (var server in _servers)
|
|
||||||
_dataSocket.SendJoinVoice(server.Id, System.Linq.Enumerable.First(server.ChannelIds));*/
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "RESUMED":
|
case "RESUMED":
|
||||||
@@ -363,10 +363,13 @@ namespace Discord
|
|||||||
case "GUILD_CREATE":
|
case "GUILD_CREATE":
|
||||||
{
|
{
|
||||||
var model = e.Payload.ToObject<GuildCreateEvent>(_serializer);
|
var model = e.Payload.ToObject<GuildCreateEvent>(_serializer);
|
||||||
|
if (!model.Unavailable)
|
||||||
|
{
|
||||||
var server = _servers.GetOrAdd(model.Id);
|
var server = _servers.GetOrAdd(model.Id);
|
||||||
server.Update(model);
|
server.Update(model);
|
||||||
RaiseServerCreated(server);
|
RaiseServerCreated(server);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "GUILD_UPDATE":
|
case "GUILD_UPDATE":
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace Discord
|
|||||||
|
|
||||||
/// <summary> Max time in milliseconds to wait for DiscordClient to connect and initialize. </summary>
|
/// <summary> Max time in milliseconds to wait for DiscordClient to connect and initialize. </summary>
|
||||||
public int ConnectionTimeout { get { return _connectionTimeout; } set { SetValue(ref _connectionTimeout, value); } }
|
public int ConnectionTimeout { get { return _connectionTimeout; } set { SetValue(ref _connectionTimeout, value); } }
|
||||||
private int _connectionTimeout = 10000;
|
private int _connectionTimeout = 30000;
|
||||||
/// <summary> Gets or sets the time (in milliseconds) to wait after an unexpected disconnect before reconnecting. </summary>
|
/// <summary> Gets or sets the time (in milliseconds) to wait after an unexpected disconnect before reconnecting. </summary>
|
||||||
public int ReconnectDelay { get { return _reconnectDelay; } set { SetValue(ref _reconnectDelay, value); } }
|
public int ReconnectDelay { get { return _reconnectDelay; } set { SetValue(ref _reconnectDelay, value); } }
|
||||||
private int _reconnectDelay = 1000;
|
private int _reconnectDelay = 1000;
|
||||||
|
|||||||
Reference in New Issue
Block a user