Browse Source

Added ServerAvailable and ServerUnavailable events

tags/docs-0.9
RogueException 9 years ago
parent
commit
7f3702b0a8
2 changed files with 35 additions and 9 deletions
  1. +12
    -0
      src/Discord.Net/DiscordClient.Events.cs
  2. +23
    -9
      src/Discord.Net/DiscordClient.cs

+ 12
- 0
src/Discord.Net/DiscordClient.Events.cs View File

@@ -126,6 +126,18 @@ namespace Discord
if (ServerUpdated != null)
RaiseEvent(nameof(ServerUpdated), () => ServerUpdated(this, new ServerEventArgs(server)));
}
public event EventHandler<ServerEventArgs> ServerUnavailable;
private void RaiseServerUnavailable(Server server)
{
if (ServerUnavailable != null)
RaiseEvent(nameof(ServerUnavailable), () => ServerUnavailable(this, new ServerEventArgs(server)));
}
public event EventHandler<ServerEventArgs> ServerAvailable;
private void RaiseServerAvailable(Server server)
{
if (ServerAvailable != null)
RaiseEvent(nameof(ServerAvailable), () => ServerAvailable(this, new ServerEventArgs(server)));
}

//Channel
public event EventHandler<ChannelEventArgs> ChannelCreated;


+ 23
- 9
src/Discord.Net/DiscordClient.cs View File

@@ -103,6 +103,12 @@ namespace Discord
ServerUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Updated Server: {e.Server?.Name}" +
(showIDs ? $" ({e.ServerId})" : ""));
ServerAvailable += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Server Unavailable: {e.Server?.Name}" +
(showIDs ? $" ({e.ServerId})" : ""));
ServerUnavailable += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Server Unavailable: {e.Server?.Name}" +
(showIDs ? $" ({e.ServerId})" : ""));
ChannelCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Created Channel: {e.Server?.Name ?? "[Private]"}/{e.Channel.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.ChannelId})" : ""));
@@ -392,22 +398,25 @@ namespace Discord
//Servers
case "GUILD_CREATE":
{
var model = e.Payload.ToObject<GuildCreateEvent>(_serializer);
if (!model.Unavailable)
var data = e.Payload.ToObject<GuildCreateEvent>(_serializer);
if (!data.Unavailable)
{
var server = _servers.GetOrAdd(model.Id);
server.Update(model);
RaiseServerCreated(server);
var server = _servers.GetOrAdd(data.Id);
server.Update(data);
if (data.Unavailable == false)
RaiseServerAvailable(server);
else
RaiseServerCreated(server);
}
}
break;
case "GUILD_UPDATE":
{
var model = e.Payload.ToObject<GuildUpdateEvent>(_serializer);
var server = _servers[model.Id];
var data = e.Payload.ToObject<GuildUpdateEvent>(_serializer);
var server = _servers[data.Id];
if (server != null)
{
server.Update(model);
server.Update(data);
RaiseServerUpdated(server);
}
}
@@ -417,7 +426,12 @@ namespace Discord
var data = e.Payload.ToObject<GuildDeleteEvent>(_serializer);
var server = _servers.TryRemove(data.Id);
if (server != null)
RaiseServerDestroyed(server);
{
if (data.Unavailable == true)
RaiseServerAvailable(server);
else
RaiseServerDestroyed(server);
}
}
break;



Loading…
Cancel
Save