Added ServerAvailable and ServerUnavailable events
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user