Added guild parameter to PresenceUpdated, added GuildMemberUpdated
This commit is contained in:
@@ -155,18 +155,24 @@ namespace Discord.WebSocket
|
|||||||
remove { _userUnbannedEvent.Remove(value); }
|
remove { _userUnbannedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<SocketUser, SocketGuild, Task>> _userUnbannedEvent = new AsyncEvent<Func<SocketUser, SocketGuild, Task>>();
|
private readonly AsyncEvent<Func<SocketUser, SocketGuild, Task>> _userUnbannedEvent = new AsyncEvent<Func<SocketUser, SocketGuild, Task>>();
|
||||||
public event Func<SocketGuildUser, SocketGuildUser, Task> UserUpdated
|
public event Func<SocketUser, SocketUser, Task> UserUpdated
|
||||||
{
|
{
|
||||||
add { _userUpdatedEvent.Add(value); }
|
add { _userUpdatedEvent.Add(value); }
|
||||||
remove { _userUpdatedEvent.Remove(value); }
|
remove { _userUpdatedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<SocketGuildUser, SocketGuildUser, Task>> _userUpdatedEvent = new AsyncEvent<Func<SocketGuildUser, SocketGuildUser, Task>>();
|
private readonly AsyncEvent<Func<SocketUser, SocketUser, Task>> _userUpdatedEvent = new AsyncEvent<Func<SocketUser, SocketUser, Task>>();
|
||||||
public event Func<SocketUser, SocketPresence, SocketPresence, Task> UserPresenceUpdated
|
public event Func<SocketGuildUser, SocketGuildUser, Task> GuildMemberUpdated
|
||||||
|
{
|
||||||
|
add { _guildMemberUpdatedEvent.Add(value); }
|
||||||
|
remove { _guildMemberUpdatedEvent.Remove(value); }
|
||||||
|
}
|
||||||
|
private readonly AsyncEvent<Func<SocketGuildUser, SocketGuildUser, Task>> _guildMemberUpdatedEvent = new AsyncEvent<Func<SocketGuildUser, SocketGuildUser, Task>>();
|
||||||
|
public event Func<Optional<SocketGuild>, SocketUser, SocketPresence, SocketPresence, Task> UserPresenceUpdated
|
||||||
{
|
{
|
||||||
add { _userPresenceUpdatedEvent.Add(value); }
|
add { _userPresenceUpdatedEvent.Add(value); }
|
||||||
remove { _userPresenceUpdatedEvent.Remove(value); }
|
remove { _userPresenceUpdatedEvent.Remove(value); }
|
||||||
}
|
}
|
||||||
private readonly AsyncEvent<Func<SocketUser, SocketPresence, SocketPresence, Task>> _userPresenceUpdatedEvent = new AsyncEvent<Func<SocketUser, SocketPresence, SocketPresence, Task>>();
|
private readonly AsyncEvent<Func<Optional<SocketGuild>, SocketUser, SocketPresence, SocketPresence, Task>> _userPresenceUpdatedEvent = new AsyncEvent<Func<Optional<SocketGuild>, SocketUser, SocketPresence, SocketPresence, Task>>();
|
||||||
public event Func<SocketUser, SocketVoiceState, SocketVoiceState, Task> UserVoiceStateUpdated
|
public event Func<SocketUser, SocketVoiceState, SocketVoiceState, Task> UserVoiceStateUpdated
|
||||||
{
|
{
|
||||||
add { _userVoiceStateUpdatedEvent.Add(value); }
|
add { _userVoiceStateUpdatedEvent.Add(value); }
|
||||||
|
|||||||
@@ -863,7 +863,7 @@ namespace Discord.WebSocket
|
|||||||
{
|
{
|
||||||
var before = user.Clone();
|
var before = user.Clone();
|
||||||
user.Update(State, data);
|
user.Update(State, data);
|
||||||
await _userUpdatedEvent.InvokeAsync(before, user).ConfigureAwait(false);
|
await _guildMemberUpdatedEvent.InvokeAsync(before, user).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1303,7 +1303,7 @@ namespace Discord.WebSocket
|
|||||||
}
|
}
|
||||||
|
|
||||||
SocketPresence before;
|
SocketPresence before;
|
||||||
SocketUser user = guild.GetUser(data.User.Id);
|
var user = guild.GetUser(data.User.Id);
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
before = user.Presence.Clone();
|
before = user.Presence.Clone();
|
||||||
@@ -1315,7 +1315,12 @@ namespace Discord.WebSocket
|
|||||||
user = guild.AddOrUpdateUser(data);
|
user = guild.AddOrUpdateUser(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
await _userPresenceUpdatedEvent.InvokeAsync(user, before, user.Presence).ConfigureAwait(false);
|
await _userPresenceUpdatedEvent.InvokeAsync(guild, user, before, user.Presence).ConfigureAwait(false);
|
||||||
|
if (data.User.Username.IsSpecified || data.Roles.IsSpecified)
|
||||||
|
{
|
||||||
|
var before2 = user.Clone();
|
||||||
|
await _guildMemberUpdatedEvent.InvokeAsync(before2, user).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1325,7 +1330,13 @@ namespace Discord.WebSocket
|
|||||||
var user = channel.GetUser(data.User.Id);
|
var user = channel.GetUser(data.User.Id);
|
||||||
var before = user.Presence.Clone();
|
var before = user.Presence.Clone();
|
||||||
user.Update(State, data);
|
user.Update(State, data);
|
||||||
await _userPresenceUpdatedEvent.InvokeAsync(user, before, user.Presence).ConfigureAwait(false);
|
|
||||||
|
await _userPresenceUpdatedEvent.InvokeAsync(Optional.Create<SocketGuild>(), user, before, user.Presence).ConfigureAwait(false);
|
||||||
|
if (data.User.Username.IsSpecified)
|
||||||
|
{
|
||||||
|
var before2 = user.Clone();
|
||||||
|
await _userUpdatedEvent.InvokeAsync(before2, user).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user