Browse Source

Increased connection timeout to 30s, added initial support for unavailable servers

tags/docs-0.9
RogueException 9 years ago
parent
commit
0cafcebdba
3 changed files with 16 additions and 11 deletions
  1. +2
    -0
      src/Discord.Net/API/Common.cs
  2. +13
    -10
      src/Discord.Net/DiscordClient.cs
  3. +1
    -1
      src/Discord.Net/DiscordClientConfig.cs

+ 2
- 0
src/Discord.Net/API/Common.cs View File

@@ -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


+ 13
- 10
src/Discord.Net/DiscordClient.cs View File

@@ -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) =>
{ {
@@ -341,8 +341,11 @@ namespace Discord
_currentUser.Update(data.User); _currentUser.Update(data.User);
foreach (var model in data.Guilds) foreach (var model in data.Guilds)
{ {
var server = _servers.GetOrAdd(model.Id);
server.Update(model);
if (!model.Unavailable)
{
var server = _servers.GetOrAdd(model.Id);
server.Update(model);
}
} }
foreach (var model in data.PrivateChannels) foreach (var model in data.PrivateChannels)
{ {
@@ -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,9 +363,12 @@ namespace Discord
case "GUILD_CREATE": case "GUILD_CREATE":
{ {
var model = e.Payload.ToObject<GuildCreateEvent>(_serializer); var model = e.Payload.ToObject<GuildCreateEvent>(_serializer);
var server = _servers.GetOrAdd(model.Id);
server.Update(model);
RaiseServerCreated(server);
if (!model.Unavailable)
{
var server = _servers.GetOrAdd(model.Id);
server.Update(model);
RaiseServerCreated(server);
}
} }
break; break;
case "GUILD_UPDATE": case "GUILD_UPDATE":
@@ -694,7 +697,7 @@ namespace Discord
} }
private async Task<IDiscordVoiceClient> CreateVoiceClient(string serverId) private async Task<IDiscordVoiceClient> CreateVoiceClient(string serverId)
{ {
if (!_config.EnableVoiceMultiserver)
if (!_config.EnableVoiceMultiserver)
{ {
_voiceServerId = serverId; _voiceServerId = serverId;
return this; return this;


+ 1
- 1
src/Discord.Net/DiscordClientConfig.cs View File

@@ -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;


Loading…
Cancel
Save